Go to main content

Textpattern CMS support forum

You are not logged in. Register | Login | Help

#13 Yesterday 11:53:11

gaekwad
Server grease monkey
From: People's Republic of Cornwall
Registered: 2005-11-19
Posts: 4,407
GitHub

Re: Docs site - changes not propagating; search broken

Offline

#14 Yesterday 12:06:27

gaekwad
Server grease monkey
From: People's Republic of Cornwall
Registered: 2005-11-19
Posts: 4,407
GitHub

Re: Docs site - changes not propagating; search broken

40-ish commits later and we’re using a single branch in our docs repo. This reduces confusion / uncertainty on which branch to use for changes.

There were a handful of discrepancies with the two branches, and relevant changes were merged in manually. Like the human version of rsync, but powered by a dirty store-brand energy drink + Djrum’s Essential Mix from earlier this year.

Offline

#15 Yesterday 12:31:28

etc
Developer
Registered: 2010-11-11
Posts: 5,419
Website GitHub

Re: Docs site - changes not propagating; search broken

Bloke wrote #340145:

But that loses the notion of “common attributes” and the various other includes, essentially making everything “flat”.

I guess the attributes part is rather outdated, so here is a way to check.

Offline

#16 Yesterday 12:34:30

Bloke
Developer
From: Leeds, UK
Registered: 2006-01-29
Posts: 11,847
Website GitHub

Re: Docs site - changes not propagating; search broken

gaekwad wrote #340150:

40-ish commits later and we’re using a single branch in our docs repo.

Woot awesome. Thank you that will save some head scratching.

Just been thinking. Two variants on the “storing stuff in the repo” idea. Both dependent on CI pipeline capabilities.

Option 1.
Squirt the content out in the first/second sweep from Pandoc as XML files.
On commit, run an XML validator and reject any non-conforming commits. Not sure how that works if someone is working remotely, commits locally and then does git push. Does the server reject it at that point and feed back to the client, or does the commit hook run asynchronously?

Option 2 (arguably better).
Squirt the content out in the first/second sweep from Pandoc as Textile files.
Edit them raw in Textile in the repo and then, on commit, some commit hook or CI process builds the XML files by injecting the committed content into a preformatted XML template.

That template would need to drag things like the file location relative to its subdirectory so metadata like section and article URL can be created as XML preamble content. Potentially other stuff like tags or categories could be embedded in the Textile as a well-known block but that feels a bit Jekyllish and kludgy.

Thoughts?


The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.

Txp Builders – finely-crafted code, design and Txp

Offline

#17 Yesterday 13:02:45

Bloke
Developer
From: Leeds, UK
Registered: 2006-01-29
Posts: 11,847
Website GitHub

Re: Docs site - changes not propagating; search broken

etc wrote #340151:

I guess the attributes part is rather outdated, so here is a way to check.

We could leverage this to generate the attribute cross ref doc page. A dedicated “rebuild attributes” script could spit out a file that has everything we need to construct it.

Not sure how just yet. Maybe a file with every tag on one page that would then force the parser to invoke every tag? Or just iterate through every registered tag and call the parser to inspect each one?

Ideas welcome.


The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.

Txp Builders – finely-crafted code, design and Txp

Offline

#18 Yesterday 13:21:59

gaekwad
Server grease monkey
From: People's Republic of Cornwall
Registered: 2005-11-19
Posts: 4,407
GitHub

Re: Docs site - changes not propagating; search broken

Bloke wrote #340152:

Option 1.
Squirt the content out in the first/second sweep from Pandoc as XML files.
On commit, run an XML validator and reject any non-conforming commits. Not sure how that works if someone is working remotely, commits locally and then does git push. Does the server reject it at that point and feed back to the client, or does the commit hook run asynchronously?

Option 2 (arguably better).
Squirt the content out in the first/second sweep from Pandoc as Textile files.
Edit them raw in Textile in the repo and then, on commit, some commit hook or CI process builds the XML files by injecting the committed content into a preformatted XML template.

Thoughts?

A combination of both, with some extra bits, to suggest Option 3:

  • Store files natively as the format with the lowest barrier to human entry + well-supported in Pandoc + well-supported in Git platform. This might end up being Markdown.
  • CI linter checks native format, proceeds to Pandoc squirt phase if no errors, bombs out if errors (i.e. last known-good Pandoc pass is still present).
  • Take native format, spit out formats (plural) per shopping list. Each format has its own directory scaffold so it can be cherry picked for use elsewhere and / or resquirted into something else (e.g. Letterpress which I’d really like to leverage at some point).

Offline

#19 Yesterday 13:24:51

etc
Developer
Registered: 2010-11-11
Posts: 5,419
Website GitHub

Re: Docs site - changes not propagating; search broken

If this helps, here is the current attr => tags list:

array (
  'active_class' => 
  array (
    0 => 'category_list',
    1 => 'section_list',
  ),
  'add' => 
  array (
    0 => 'variable',
  ),
  'alias' => 
  array (
    0 => 'evaluate',
  ),
  'allowoverride' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'link_to_next',
    3 => 'link_to_prev',
    4 => 'next_title',
    5 => 'prev_title',
    6 => 'recent_articles',
  ),
  'alt' => 
  array (
    0 => 'image',
    1 => 'thumbnail',
  ),
  'anchor' => 
  array (
    0 => 'comment_permlink',
  ),
  'aria_label' => 
  array (
    0 => 'comment_email_input',
    1 => 'comment_message_input',
    2 => 'comment_name_input',
    3 => 'comment_web_input',
    4 => 'search_input',
  ),
  'author' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'file_download_list',
    3 => 'images',
    4 => 'link_to_next',
    5 => 'link_to_prev',
    6 => 'linklist',
    7 => 'next_title',
    8 => 'prev_title',
    9 => 'recent_articles',
  ),
  'auto_detect' => 
  array (
    0 => 'file_download_list',
    1 => 'images',
    2 => 'linklist',
  ),
  'break' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'article_image',
    3 => 'category_list',
    4 => 'comments',
    5 => 'comments_error',
    6 => 'file_download_list',
    7 => 'image_index',
    8 => 'image_info',
    9 => 'images',
    10 => 'link_to_next',
    11 => 'link_to_prev',
    12 => 'linklist',
    13 => 'newer',
    14 => 'next_title',
    15 => 'older',
    16 => 'pages',
    17 => 'prev_title',
    18 => 'recent_articles',
    19 => 'recent_comments',
    20 => 'related_articles',
    21 => 'section_list',
  ),
  'button' => 
  array (
    0 => 'search_input',
  ),
  'calendar' => 
  array (
    0 => 'comment_time',
    1 => 'date',
    2 => 'expires',
    3 => 'file_download_created',
    4 => 'file_download_modified',
    5 => 'link_date',
    6 => 'modified',
    7 => 'posted',
    8 => 'search_result_date',
  ),
  'categories' => 
  array (
    0 => 'category_list',
  ),
  'category' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'breadcrumb',
    3 => 'feed_link',
    4 => 'file_download_list',
    5 => 'if_category',
    6 => 'image_index',
    7 => 'images',
    8 => 'link_feed_link',
    9 => 'link_to_next',
    10 => 'link_to_prev',
    11 => 'linklist',
    12 => 'next_title',
    13 => 'prev_title',
    14 => 'recent_articles',
  ),
  'children' => 
  array (
    0 => 'category_list',
  ),
  'class' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'article_image',
    3 => 'breadcrumb',
    4 => 'category',
    5 => 'category1',
    6 => 'category2',
    7 => 'category_list',
    8 => 'comment_email_input',
    9 => 'comment_message_input',
    10 => 'comment_name_input',
    11 => 'comment_preview',
    12 => 'comment_remember',
    13 => 'comment_submit',
    14 => 'comment_web_input',
    15 => 'comments',
    16 => 'comments_error',
    17 => 'comments_form',
    18 => 'comments_invite',
    19 => 'file_download_list',
    20 => 'image',
    21 => 'image_index',
    22 => 'image_info',
    23 => 'images',
    24 => 'link_feed_link',
    25 => 'link_to_home',
    26 => 'link_to_next',
    27 => 'link_to_prev',
    28 => 'linklist',
    29 => 'newer',
    30 => 'next_title',
    31 => 'older',
    32 => 'pages',
    33 => 'permlink',
    34 => 'popup',
    35 => 'prev_title',
    36 => 'recent_articles',
    37 => 'recent_comments',
    38 => 'related_articles',
    39 => 'search_input',
    40 => 'search_result_title',
    41 => 'search_result_url',
    42 => 'section',
    43 => 'section_list',
    44 => 'thumbnail',
  ),
  'cols' => 
  array (
    0 => 'comment_message_input',
  ),
  'context' => 
  array (
    0 => 'page_url',
    1 => 'permlink',
    2 => 'search_result_title',
    3 => 'search_result_url',
  ),
  'custom1' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'link_to_next',
    3 => 'link_to_prev',
    4 => 'next_title',
    5 => 'prev_title',
    6 => 'recent_articles',
  ),
  'date' => 
  array (
    0 => 'if_expired',
  ),
  'decimals' => 
  array (
    0 => 'file_download_size',
  ),
  'default' => 
  array (
    0 => 'page_url',
    1 => 'variable',
    2 => 'yield',
  ),
  'default_title' => 
  array (
    0 => 'section_list',
  ),
  'depth' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'link_to_next',
    3 => 'link_to_prev',
    4 => 'next_title',
    5 => 'prev_title',
    6 => 'recent_articles',
  ),
  'else' => 
  array (
    0 => 'if_yield',
    1 => 'yield',
  ),
  'email' => 
  array (
    0 => 'email',
  ),
  'escape' => 
  array (
    0 => 'author',
    1 => 'author_email',
    2 => 'category1',
    3 => 'category2',
    4 => 'css',
    5 => 'custom_field',
    6 => 'file_download_description',
    7 => 'image',
    8 => 'image_info',
    9 => 'link',
    10 => 'link_description',
    11 => 'link_name',
    12 => 'linkdesctitle',
    13 => 'meta_author',
    14 => 'meta_description',
    15 => 'meta_keywords',
    16 => 'newer',
    17 => 'older',
    18 => 'page_url',
    19 => 'pages',
    20 => 'text',
    21 => 'thumbnail',
    22 => 'title',
  ),
  'excerpted' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'link_to_next',
    3 => 'link_to_prev',
    4 => 'next_title',
    5 => 'prev_title',
    6 => 'recent_articles',
  ),
  'exclude' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'category_list',
    3 => 'images',
    4 => 'link_to_next',
    5 => 'link_to_prev',
    6 => 'next_title',
    7 => 'prev_title',
    8 => 'recent_articles',
    9 => 'section_list',
  ),
  'expired' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'link_to_next',
    3 => 'link_to_prev',
    4 => 'next_title',
    5 => 'prev_title',
    6 => 'recent_articles',
  ),
  'extension' => 
  array (
    0 => 'images',
  ),
  'fields' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'link_to_next',
    3 => 'link_to_prev',
    4 => 'next_title',
    5 => 'prev_title',
    6 => 'recent_articles',
  ),
  'filename' => 
  array (
    0 => 'file_download',
    1 => 'file_download_link',
  ),
  'filter' => 
  array (
    0 => 'if_article_section',
    1 => 'if_section',
    2 => 'section_list',
  ),
  'flavor' => 
  array (
    0 => 'feed_link',
    1 => 'link_feed_link',
  ),
  'forgetlabel' => 
  array (
    0 => 'comment_remember',
    1 => 'comments_form',
  ),
  'form' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'authors',
    3 => 'category_list',
    4 => 'comments',
    5 => 'comments_form',
    6 => 'file_download',
    7 => 'file_download_list',
    8 => 'images',
    9 => 'link_to_next',
    10 => 'link_to_prev',
    11 => 'linklist',
    12 => 'next_title',
    13 => 'permlink',
    14 => 'prev_title',
    15 => 'recent_articles',
    16 => 'recent_comments',
    17 => 'related_articles',
    18 => 'search_input',
    19 => 'search_result_title',
    20 => 'search_result_url',
    21 => 'section_list',
  ),
  'format' => 
  array (
    0 => 'author',
    1 => 'comment_time',
    2 => 'css',
    3 => 'date',
    4 => 'expires',
    5 => 'feed_link',
    6 => 'file_download_created',
    7 => 'file_download_modified',
    8 => 'file_download_size',
    9 => 'image_date',
    10 => 'link_date',
    11 => 'link_feed_link',
    12 => 'meta_author',
    13 => 'meta_description',
    14 => 'meta_keywords',
    15 => 'modified',
    16 => 'posted',
    17 => 'search_result_date',
  ),
  'frontpage' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'link_to_next',
    3 => 'link_to_prev',
    4 => 'next_title',
    5 => 'prev_title',
    6 => 'recent_articles',
  ),
  'gmt' => 
  array (
    0 => 'comment_time',
    1 => 'date',
    2 => 'expires',
    3 => 'file_download_created',
    4 => 'file_download_modified',
    5 => 'link_date',
    6 => 'modified',
    7 => 'posted',
    8 => 'search_result_date',
  ),
  'group' => 
  array (
    0 => 'authors',
    1 => 'if_logged_in',
  ),
  'height' => 
  array (
    0 => 'article_image',
    1 => 'image',
    2 => 'thumbnail',
  ),
  'hilight' => 
  array (
    0 => 'search_result_excerpt',
  ),
  'html_id' => 
  array (
    0 => 'article_image',
    1 => 'category_list',
    2 => 'image',
    3 => 'images',
    4 => 'newer',
    5 => 'older',
    6 => 'pages',
    7 => 'search_input',
    8 => 'section_list',
    9 => 'thumbnail',
  ),
  'id' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'file_download',
    3 => 'file_download_link',
    4 => 'file_download_list',
    5 => 'if_article_id',
    6 => 'if_different',
    7 => 'image',
    8 => 'image_author',
    9 => 'image_date',
    10 => 'image_info',
    11 => 'image_url',
    12 => 'images',
    13 => 'link',
    14 => 'link_to_next',
    15 => 'link_to_prev',
    16 => 'linklist',
    17 => 'next_title',
    18 => 'permlink',
    19 => 'prev_title',
    20 => 'recent_articles',
    21 => 'search_result_title',
    22 => 'search_result_url',
    23 => 'thumbnail',
  ),
  'image' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'link_to_next',
    3 => 'link_to_prev',
    4 => 'next_title',
    5 => 'prev_title',
    6 => 'recent_articles',
  ),
  'include_default' => 
  array (
    0 => 'section_list',
  ),
  'isize' => 
  array (
    0 => 'comments_form',
  ),
  'item' => 
  array (
    0 => 'if_yield',
    1 => 'text',
    2 => 'yield',
  ),
  'keywords' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'if_keywords',
    3 => 'link_to_next',
    4 => 'link_to_prev',
    5 => 'next_title',
    6 => 'prev_title',
    7 => 'recent_articles',
  ),
  'label' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'breadcrumb',
    3 => 'category_list',
    4 => 'comment_preview',
    5 => 'comment_submit',
    6 => 'feed_link',
    7 => 'link_feed_link',
    8 => 'link_to_next',
    9 => 'link_to_prev',
    10 => 'next_title',
    11 => 'popup',
    12 => 'prev_title',
    13 => 'recent_articles',
    14 => 'related_articles',
    15 => 'search_input',
  ),
  'labeltag' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'category_list',
    3 => 'link_to_next',
    4 => 'link_to_prev',
    5 => 'next_title',
    6 => 'prev_title',
    7 => 'recent_articles',
    8 => 'related_articles',
  ),
  'lang' => 
  array (
    0 => 'comment_time',
    1 => 'date',
    2 => 'expires',
    3 => 'file_download_created',
    4 => 'file_download_modified',
    5 => 'link_date',
    6 => 'modified',
    7 => 'page_url',
    8 => 'posted',
    9 => 'search_result_date',
  ),
  'level' => 
  array (
    0 => 'if_category',
  ),
  'limit' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'authors',
    3 => 'breadcrumb',
    4 => 'category_list',
    5 => 'comments',
    6 => 'feed_link',
    7 => 'file_download_list',
    8 => 'image_index',
    9 => 'images',
    10 => 'link_to_next',
    11 => 'link_to_prev',
    12 => 'linklist',
    13 => 'newer',
    14 => 'next_title',
    15 => 'older',
    16 => 'pages',
    17 => 'prev_title',
    18 => 'recent_articles',
    19 => 'recent_comments',
    20 => 'search_result_excerpt',
    21 => 'section_list',
  ),
  'link' => 
  array (
    0 => 'author',
    1 => 'author_email',
    2 => 'breadcrumb',
    3 => 'category',
    4 => 'category1',
    5 => 'category2',
    6 => 'category_list',
    7 => 'comment_name',
    8 => 'file_download_author',
    9 => 'image',
    10 => 'image_author',
    11 => 'image_url',
    12 => 'link_author',
    13 => 'newer',
    14 => 'older',
    15 => 'pages',
    16 => 'section',
    17 => 'thumbnail',
  ),
  'link_rel' => 
  array (
    0 => 'image',
    1 => 'thumbnail',
  ),
  'linkclass' => 
  array (
    0 => 'breadcrumb',
  ),
  'linktext' => 
  array (
    0 => 'email',
  ),
  'listform' => 
  array (
    0 => 'article',
    1 => 'link_to_next',
    2 => 'link_to_prev',
    3 => 'next_title',
    4 => 'prev_title',
  ),
  'loading' => 
  array (
    0 => 'article_image',
    1 => 'image',
    2 => 'thumbnail',
  ),
  'login' => 
  array (
    0 => 'password_protect',
  ),
  'match' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'if_custom_field',
    3 => 'if_request',
    4 => 'if_variable',
    5 => 'if_yield',
    6 => 'link_to_next',
    7 => 'link_to_prev',
    8 => 'next_title',
    9 => 'prev_title',
    10 => 'recent_articles',
    11 => 'related_articles',
    12 => 'search_input',
  ),
  'max' => 
  array (
    0 => 'if_items_count',
    1 => 'if_search_results',
  ),
  'media' => 
  array (
    0 => 'css',
  ),
  'min' => 
  array (
    0 => 'if_items_count',
    1 => 'if_search_results',
  ),
  'month' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'file_download_list',
    3 => 'link_to_next',
    4 => 'link_to_prev',
    5 => 'linklist',
    6 => 'next_title',
    7 => 'prev_title',
    8 => 'recent_articles',
  ),
  'msg' => 
  array (
    0 => 'die',
    1 => 'txp_die',
  ),
  'msgcols' => 
  array (
    0 => 'comments_form',
  ),
  'msgrows' => 
  array (
    0 => 'comments_form',
  ),
  'msgstyle' => 
  array (
    0 => 'comments_form',
  ),
  'name' => 
  array (
    0 => 'authors',
    1 => 'category',
    2 => 'css',
    3 => 'custom_field',
    4 => 'header',
    5 => 'if_article_author',
    6 => 'if_article_category',
    7 => 'if_article_section',
    8 => 'if_author',
    9 => 'if_category',
    10 => 'if_custom_field',
    11 => 'if_logged_in',
    12 => 'if_plugin',
    13 => 'if_request',
    14 => 'if_section',
    15 => 'if_variable',
    16 => 'if_yield',
    17 => 'image',
    18 => 'image_author',
    19 => 'image_date',
    20 => 'image_info',
    21 => 'image_url',
    22 => 'images',
    23 => 'link',
    24 => 'section',
    25 => 'thumbnail',
    26 => 'variable',
    27 => 'yield',
  ),
  'next' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'link_to_next',
    3 => 'link_to_prev',
    4 => 'next_title',
    5 => 'prev_title',
    6 => 'recent_articles',
  ),
  'no_widow' => 
  array (
    0 => 'related_articles',
    1 => 'title',
  ),
  'not' => 
  array (
    0 => 'if_different',
  ),
  'number' => 
  array (
    0 => 'category1',
    1 => 'category2',
    2 => 'if_article_category',
  ),
  'offset' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'authors',
    3 => 'breadcrumb',
    4 => 'category_list',
    5 => 'comments',
    6 => 'file_download_list',
    7 => 'image_index',
    8 => 'images',
    9 => 'link_to_next',
    10 => 'link_to_prev',
    11 => 'linklist',
    12 => 'next_title',
    13 => 'prev_title',
    14 => 'recent_articles',
    15 => 'recent_comments',
    16 => 'section_list',
  ),
  'output' => 
  array (
    0 => 'variable',
  ),
  'pageby' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'file_download_list',
    3 => 'if_items_count',
    4 => 'if_search_results',
    5 => 'images',
    6 => 'items_count',
    7 => 'link_to_next',
    8 => 'link_to_prev',
    9 => 'linklist',
    10 => 'next_title',
    11 => 'prev_title',
    12 => 'recent_articles',
    13 => 'search_result_count',
  ),
  'parent' => 
  array (
    0 => 'category',
    1 => 'category_list',
    2 => 'if_category',
  ),
  'pass' => 
  array (
    0 => 'password_protect',
  ),
  'pgonly' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'link_to_next',
    3 => 'link_to_prev',
    4 => 'next_title',
    5 => 'prev_title',
    6 => 'recent_articles',
  ),
  'placeholder' => 
  array (
    0 => 'comment_email_input',
    1 => 'comment_message_input',
    2 => 'comment_name_input',
    3 => 'comment_web_input',
    4 => 'search_input',
  ),
  'poplink' => 
  array (
    0 => 'image',
    1 => 'thumbnail',
  ),
  'previewlabel' => 
  array (
    0 => 'comments_form',
  ),
  'privs' => 
  array (
    0 => 'password_protect',
  ),
  'query' => 
  array (
    0 => 'evaluate',
  ),
  'range' => 
  array (
    0 => 'article_image',
  ),
  'realname' => 
  array (
    0 => 'file_download_list',
    1 => 'images',
    2 => 'linklist',
  ),
  'rel' => 
  array (
    0 => 'css',
    1 => 'link',
    2 => 'linkdesctitle',
    3 => 'newer',
    4 => 'older',
    5 => 'pages',
  ),
  'rememberlabel' => 
  array (
    0 => 'comment_remember',
    1 => 'comments_form',
  ),
  'replace' => 
  array (
    0 => 'header',
  ),
  'reset' => 
  array (
    0 => 'variable',
  ),
  'root' => 
  array (
    0 => 'page_url',
  ),
  'rows' => 
  array (
    0 => 'comment_message_input',
  ),
  'searchall' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'link_to_next',
    3 => 'link_to_prev',
    4 => 'next_title',
    5 => 'prev_title',
    6 => 'recent_articles',
  ),
  'searchform' => 
  array (
    0 => 'article',
    1 => 'link_to_next',
    2 => 'link_to_prev',
    3 => 'next_title',
    4 => 'prev_title',
  ),
  'searchsticky' => 
  array (
    0 => 'article',
    1 => 'link_to_next',
    2 => 'link_to_prev',
    3 => 'next_title',
    4 => 'prev_title',
  ),
  'section' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'author',
    3 => 'breadcrumb',
    4 => 'category',
    5 => 'category1',
    6 => 'category2',
    7 => 'category_list',
    8 => 'feed_link',
    9 => 'file_download_author',
    10 => 'if_section',
    11 => 'image_author',
    12 => 'link_author',
    13 => 'link_to_next',
    14 => 'link_to_prev',
    15 => 'next_title',
    16 => 'popup',
    17 => 'prev_title',
    18 => 'recent_articles',
    19 => 'search_input',
  ),
  'sections' => 
  array (
    0 => 'section_list',
  ),
  'separator' => 
  array (
    0 => 'breadcrumb',
    1 => 'if_custom_field',
    2 => 'if_request',
    3 => 'if_variable',
    4 => 'if_yield',
    5 => 'meta_keywords',
    6 => 'page_title',
    7 => 'search_result_excerpt',
    8 => 'variable',
  ),
  'shift' => 
  array (
    0 => 'newer',
    1 => 'older',
    2 => 'pages',
  ),
  'show_preview' => 
  array (
    0 => 'comments_form',
  ),
  'showalways' => 
  array (
    0 => 'comments_invite',
    1 => 'newer',
    2 => 'older',
    3 => 'pages',
  ),
  'showcount' => 
  array (
    0 => 'comments_invite',
  ),
  'size' => 
  array (
    0 => 'comment_email_input',
    1 => 'comment_name_input',
    2 => 'comment_web_input',
    3 => 'images',
    4 => 'search_input',
  ),
  'sort' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'authors',
    3 => 'category_list',
    4 => 'comments',
    5 => 'file_download',
    6 => 'file_download_list',
    7 => 'image_index',
    8 => 'images',
    9 => 'link_to_next',
    10 => 'link_to_prev',
    11 => 'linklist',
    12 => 'next_title',
    13 => 'prev_title',
    14 => 'recent_articles',
    15 => 'recent_comments',
    16 => 'section_list',
  ),
  'status' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'die',
    3 => 'file_download_list',
    4 => 'if_article_status',
    5 => 'if_status',
    6 => 'link_to_next',
    7 => 'link_to_prev',
    8 => 'next_title',
    9 => 'prev_title',
    10 => 'recent_articles',
    11 => 'txp_die',
  ),
  'style' => 
  array (
    0 => 'permlink',
    1 => 'search_result_title',
    2 => 'search_result_url',
  ),
  'submitlabel' => 
  array (
    0 => 'comments_form',
  ),
  'target' => 
  array (
    0 => 'popup',
  ),
  'test' => 
  array (
    0 => 'evaluate',
    1 => 'if_different',
  ),
  'text' => 
  array (
    0 => 'items_count',
    1 => 'search_result_count',
  ),
  'textonly' => 
  array (
    0 => 'comments_invite',
  ),
  'theme' => 
  array (
    0 => 'css',
  ),
  'this_section' => 
  array (
    0 => 'author',
    1 => 'category',
    2 => 'category1',
    3 => 'category2',
    4 => 'category_list',
    5 => 'file_download_author',
    6 => 'image_author',
    7 => 'link_author',
    8 => 'popup',
  ),
  'thumbnail' => 
  array (
    0 => 'article_image',
    1 => 'image',
    2 => 'image_url',
    3 => 'images',
    4 => 'thumbnail',
  ),
  'time' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'comment_time',
    3 => 'date',
    4 => 'expires',
    5 => 'file_download_created',
    6 => 'file_download_list',
    7 => 'file_download_modified',
    8 => 'if_expired',
    9 => 'link_date',
    10 => 'link_to_next',
    11 => 'link_to_prev',
    12 => 'linklist',
    13 => 'modified',
    14 => 'next_title',
    15 => 'posted',
    16 => 'prev_title',
    17 => 'recent_articles',
    18 => 'search_result_date',
  ),
  'title' => 
  array (
    0 => 'article_image',
    1 => 'author',
    2 => 'breadcrumb',
    3 => 'category',
    4 => 'category1',
    5 => 'category2',
    6 => 'css',
    7 => 'email',
    8 => 'feed_link',
    9 => 'file_download_author',
    10 => 'file_download_category',
    11 => 'file_download_name',
    12 => 'image',
    13 => 'image_author',
    14 => 'link_author',
    15 => 'link_category',
    16 => 'link_feed_link',
    17 => 'meta_author',
    18 => 'newer',
    19 => 'older',
    20 => 'pages',
    21 => 'permlink',
    22 => 'search_result_title',
    23 => 'search_result_url',
    24 => 'section',
    25 => 'thumbnail',
  ),
  'type' => 
  array (
    0 => 'breadcrumb',
    1 => 'category',
    2 => 'category_list',
    3 => 'comment_time',
    4 => 'date',
    5 => 'expires',
    6 => 'file_download',
    7 => 'file_download_created',
    8 => 'file_download_modified',
    9 => 'if_author',
    10 => 'if_category',
    11 => 'if_description',
    12 => 'if_request',
    13 => 'image_info',
    14 => 'link_date',
    15 => 'meta_description',
    16 => 'modified',
    17 => 'page_url',
    18 => 'popup',
    19 => 'posted',
    20 => 'search_result_date',
    21 => 'site_url',
  ),
  'url' => 
  array (
    0 => 'category',
    1 => 'die',
    2 => 'section',
    3 => 'txp_die',
  ),
  'url_title' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'link_to_next',
    3 => 'link_to_prev',
    4 => 'next_title',
    5 => 'prev_title',
    6 => 'recent_articles',
  ),
  'value' => 
  array (
    0 => 'header',
    1 => 'if_custom_field',
    2 => 'if_request',
    3 => 'if_variable',
    4 => 'if_yield',
    5 => 'variable',
  ),
  'version' => 
  array (
    0 => 'if_plugin',
  ),
  'width' => 
  array (
    0 => 'article_image',
    1 => 'image',
    2 => 'thumbnail',
  ),
  'wraptag' => 
  array (
    0 => 'article',
    1 => 'article_custom',
    2 => 'article_image',
    3 => 'breadcrumb',
    4 => 'category',
    5 => 'category1',
    6 => 'category2',
    7 => 'category_list',
    8 => 'comments',
    9 => 'comments_error',
    10 => 'comments_form',
    11 => 'comments_invite',
    12 => 'file_download_list',
    13 => 'image',
    14 => 'image_index',
    15 => 'image_info',
    16 => 'images',
    17 => 'link_feed_link',
    18 => 'link_to_next',
    19 => 'link_to_prev',
    20 => 'linklist',
    21 => 'newer',
    22 => 'next_title',
    23 => 'older',
    24 => 'pages',
    25 => 'popup',
    26 => 'prev_title',
    27 => 'recent_articles',
    28 => 'recent_comments',
    29 => 'search_input',
    30 => 'section',
    31 => 'section_list',
    32 => 'thumbnail',
  ),
)

Offline

#20 Yesterday 13:33:35

Bloke
Developer
From: Leeds, UK
Registered: 2006-01-29
Posts: 11,847
Website GitHub

Re: Docs site - changes not propagating; search broken

gaekwad wrote #340154:

A combination of both, with some extra bits, to suggest Option 3:

Oooh, me likeee. If we’re confident Pandoc can do a bang-up job of conversion then rolling it into the pipeline works for me.

Markdown works for me as a storage format. It’s closer to Jekyll now too, so far less wrangling to get it from the current format.

Question then: how does the pipeline / commit hook stuff work? And I’m aware I could Google this so if there are no takers for a high level orientation lesson, I’ll get off my lazy ass later after work and read up.

Is it just a series of scripts in a defined order? Like, numerical by filename (a la rc.d) or is there a control file that says “do this then this, but if it fails then do this?” And is that in a specific language or format? How does it get input from the commit (like filenames that have been changed or can it query the repo and ask for all files in a subdir?)

And can the script be in any executable language? E.g. A perl script. Cos with my newfound Perl skills, it would be a cinch to write the Textile -> XML thing. 20 lines of code, probably, give or take.


The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.

Txp Builders – finely-crafted code, design and Txp

Offline

#21 Yesterday 13:50:29

gaekwad
Server grease monkey
From: People's Republic of Cornwall
Registered: 2005-11-19
Posts: 4,407
GitHub

Re: Docs site - changes not propagating; search broken

Bloke wrote #340157:

Question then: how does the pipeline / commit hook stuff work? And I’m aware I could Google this so if there are no takers I’ll get off my lazy ass later after work and read up.

Honestly, I don’t fully understand it myself. I have set up github.com/textpattern/docs-test as a playground. You should have full commit access to tool around.

And can the script be in any executable language? E.g. A perl script. Cos with my newfound Perl skills, it would be a cinch to write the Textile -> XML thing. 20 lines of code, probably.

Don’t be bringing bloody Perl into this, we’re almost clear of Ruby and don’t need another thing on the deck!

It’s YAML, as I understand it. Example: github.com/pandoc/pandoc-action-example

Offline

#22 Yesterday 14:16:14

Bloke
Developer
From: Leeds, UK
Registered: 2006-01-29
Posts: 11,847
Website GitHub

Re: Docs site - changes not propagating; search broken

gaekwad wrote #340158:

I have set up github.com/textpattern/docs-test as a playground. You should have full commit access to tool around.

Brill, thank you. I’ll read up on how it works later.

Don’t be bringing bloody Perl into this, we’re almost clear of Ruby and don’t need another thing on the deck!

Haha, spoilsport 🙃

It’s YAML, as I understand it.

I can deal with YAML. Used it before. I presume that will be the control file that tells it what to run and when. I’ll grok it and try to make sense of it.

Thank you.


The smd plugin menagerie — for when you need one more gribble of power from Textpattern. Bleeding-edge code available on GitHub.

Txp Builders – finely-crafted code, design and Txp

Offline

#23 Yesterday 17:44:55

giz
Member
From: New Zealand
Registered: 2004-07-26
Posts: 354
Website GitHub Twitter

Re: Docs site - changes not propagating; search broken

Playing devils advocate, what if we used a suitably prepared Textpattern install as the starting point, and then manually entered each article?

Less ball-ache, even with hundreds of articles to convert. A suitable workflow could be established to convert the current html into Textile, so it turns into lots of copy/paste sessions, which themselves can be semi-automated.

One or three volunteers over a period of months would do it (I’m putting my hand up).

.

I’m often faced with the challenges of making complex content changes across hundreds of articles. I typically prevaricate between 2 approaches:

  • sequence a mix of ‘coding’ in various flavours eg. sequential regex search and replace in a dump of the database in Nova, rinse, test and repeat.
  • do the damn ting manually

More often than not, I find the first approach has hidden pitfalls, and is brittle.

Manual data entry is daunting at first, but I’m always pleasantly surprised at how fast and efficient it is — at least in Textpattern :)

Offline

#24 Yesterday 18:23:31

gaekwad
Server grease monkey
From: People's Republic of Cornwall
Registered: 2005-11-19
Posts: 4,407
GitHub

Re: Docs site - changes not propagating; search broken

giz wrote #340163:

Playing devils advocate, what if we used a suitably prepared Textpattern install as the starting point, and then manually entered each article?

I’ll see your devil’s advocate, giz. Thanks for stopping by!

The current docs are in Markdown-ish (could be GitHub Flavoured Markdown, could be Kramdown), but they’re not Textile’d. The workflow will make use of Pandoc to run automated conversions whenever the content changes and passes the required tests (e.g. a linter, schema check, etc). This process should be a smooth as possible, to complete as efficiently as possible, and ideally with the best / most flexible ‘input’ format to run the one-to-multiple format conversion process.

At the moment, the demo site instances are trashed and rebuilt from source automatically to schedule, and the process takes <5 seconds. One of the positive outcomes of this process is the removal of any weirdness that’s hanging around from previous builds. The demo sites have a lot of hack attempts, and knowing they’re essentially clean every few hours a) helps me tremendously, and; b) ensures users have a clean room environment to a given schedule. In that sense, it’s a solved problem: the download-from-GitHub-and-run-the-shell-script build process is a big tick in the box.

If the ‘best’ input format for the source material is indeed Markdown (and I have no particular preference for Textile, Markdown, AsciiDoc, or something else), then there’s minimal work we have to do. I suspect there’s a reason Markdown is the first format listed on the Pandoc conversion list, and it follows that the more people who use it, the more optimised the parsing is at the Pandoc side.

From a workflow perspective, using our Git host (currently GitHub) as the working area means anyone with an account can contribute, and the linter can do some heavy lifting, and make our Textpattern input articles in the ‘best’ Textpattern format (the current ‘in’ format for Textpattern automated installation is XML – see github.com/textpattern/textpattern/blob/dev/textpattern/setup/articles/articles.welcome.xml for an example). If we’re considering compiled downloads, we could export to EPUB. If we want formatted pretty docs in a portable sense, we could make a PDF. Jupyter notebook? Maybe!

Offline

Board footer

Powered by FluxBB