├── .github └── workflows │ └── html_deploy.yml ├── .gitignore ├── .travis.yml ├── LICENSE ├── Makefile ├── README.md ├── content-old ├── 2018 │ ├── code │ │ ├── lab1 │ │ │ └── hello_world.c │ │ └── lab10 │ │ │ └── example.zip │ ├── extra │ │ ├── BFS.pdf │ │ ├── Hash.pdf │ │ ├── favicon.png │ │ ├── lab22 │ │ │ ├── task4 │ │ │ │ ├── en-ru.txt │ │ │ │ └── input.txt │ │ │ ├── task5 │ │ │ │ └── input.txt │ │ │ ├── task6 │ │ │ │ ├── convert.py │ │ │ │ ├── en-ru.txt │ │ │ │ ├── input.txt │ │ │ │ ├── output.txt │ │ │ │ └── ru-en.txt │ │ │ ├── task7 │ │ │ │ ├── en-ru.raw.txt │ │ │ │ ├── en-ru.txt │ │ │ │ ├── ru-en.raw.txt │ │ │ │ └── ru-en.txt │ │ │ └── task8 │ │ │ │ ├── generate_task8.py │ │ │ │ ├── input.txt │ │ │ │ └── output.txt │ │ └── lab24 │ │ │ └── mass_table.txt │ ├── images │ │ ├── 640px-Kmp_pict2.png │ │ ├── 671px-Colors.png │ │ ├── Lagrange.png │ │ ├── Prefix.jpg │ │ ├── Z-func.png │ │ ├── lab1 │ │ │ ├── broken_hdd.jpg │ │ │ ├── flower.gif │ │ │ └── smoking_computer.jpg │ │ ├── lab10 │ │ │ ├── 1.svg │ │ │ └── 2.svg │ │ ├── lab17 │ │ │ ├── .readme │ │ │ ├── Numbers_alkans.jpg │ │ │ ├── butterfly.gif │ │ │ ├── circle.gif │ │ │ ├── flower.gif │ │ │ ├── nested_rectangles.gif │ │ │ ├── rect_spiral.gif │ │ │ ├── rectangle.gif │ │ │ ├── regular_polygon.gif │ │ │ ├── smile.gif │ │ │ ├── spider.gif │ │ │ ├── spiral.gif │ │ │ ├── spring.gif │ │ │ ├── star11.gif │ │ │ └── star5.gif │ │ ├── lab22 │ │ │ └── ex2_formula.png │ │ ├── logo.png │ │ ├── logo.svg │ │ ├── machine.png │ │ ├── matrix_graph.png │ │ ├── primergraph.png │ │ ├── spisok_graph.png │ │ ├── table func.png │ │ ├── tps1.PNG │ │ ├── tps2.PNG │ │ ├── tps3.PNG │ │ ├── tps4.PNG │ │ ├── tps5.PNG │ │ ├── tps6.PNG │ │ ├── tps7.PNG │ │ ├── tps8.PNG │ │ ├── tps9.PNG │ │ ├── type data.bmp │ │ ├── type data.png │ │ └── type_data.png │ ├── jslib │ │ └── jquery-3.3.1.min.js │ ├── lab1.rst │ ├── lab10.rst │ ├── lab11.rst │ ├── lab12.rst │ ├── lab13.rst │ ├── lab14.rst │ ├── lab15.rst │ ├── lab16.rst │ ├── lab17.rst │ ├── lab18.rst │ ├── lab19.rst │ ├── lab2.rst │ ├── lab20.rst │ ├── lab21.rst │ ├── lab22.rst │ ├── lab23.rst │ ├── lab24.rst │ ├── lab25.rst │ ├── lab26.rst │ ├── lab27.rst │ ├── lab28.rst │ ├── lab29.rst │ ├── lab3.rst │ ├── lab30.rst │ ├── lab31.rst │ ├── lab4.rst │ ├── lab5.rst │ ├── lab6.rst │ ├── lab7.rst │ ├── lab8.rst │ ├── lab9r.rst │ ├── pages │ │ ├── about.rst │ │ └── authors.rst │ └── partSsylkiConst ├── 2019 │ ├── extra │ │ ├── favicon.png │ │ ├── lab22 │ │ │ ├── ceasar.txt │ │ │ ├── find_a_fish.txt │ │ │ ├── matplotlib │ │ │ │ ├── raw_parabola.png │ │ │ │ └── two_plots.png │ │ │ └── task1.txt │ │ ├── lab27 │ │ │ └── mst.zip │ │ └── lab29 │ │ │ └── games_theory.zip │ ├── images │ │ ├── lab1 │ │ │ ├── broken_hdd.jpg │ │ │ └── smoking_computer.jpg │ │ ├── logo.png │ │ └── logo.svg │ ├── jslib │ │ └── jquery-3.3.1.min.js │ ├── lab1.rst │ ├── lab10.rst │ ├── lab11.rst │ ├── lab12.rst │ ├── lab13.rst │ ├── lab14.rst │ ├── lab15.rst │ ├── lab16.rst │ ├── lab17.rst │ ├── lab18.rst │ ├── lab19.rst │ ├── lab2.rst │ ├── lab20.rst │ ├── lab21.rst │ ├── lab22.rst │ ├── lab23.rst │ ├── lab24.rst │ ├── lab25.rst │ ├── lab26.rst │ ├── lab27.rst │ ├── lab28.rst │ ├── lab29.rst │ ├── lab3.rst │ ├── lab30.rst │ ├── lab31.rst │ ├── lab4.rst │ ├── lab5.rst │ ├── lab6.rst │ ├── lab7.rst │ ├── lab8.rst │ └── lab9.rst └── 2020 │ ├── extra │ ├── favicon.png │ ├── lab22 │ │ ├── ceasar.txt │ │ ├── find_a_fish.txt │ │ ├── matplotlib │ │ │ ├── raw_parabola.png │ │ │ └── two_plots.png │ │ └── task1.txt │ ├── lab27 │ │ └── mst.zip │ └── lab29 │ │ └── games_theory.zip │ ├── images │ ├── lab1 │ │ ├── broken_hdd.jpg │ │ └── smoking_computer.jpg │ ├── logo.png │ └── logo.svg │ ├── jslib │ └── jquery-3.3.1.min.js │ ├── lab1.rst │ ├── lab10.rst │ ├── lab11.rst │ ├── lab12.rst │ ├── lab13.rst │ ├── lab14.rst │ ├── lab15.rst │ ├── lab16.rst │ ├── lab17.rst │ ├── lab18.rst │ ├── lab19.rst │ ├── lab2.rst │ ├── lab20.rst │ ├── lab21.rst │ ├── lab22.rst │ ├── lab23.rst │ ├── lab24.rst │ ├── lab25.rst │ ├── lab26.rst │ ├── lab27.rst │ ├── lab28.rst │ ├── lab29.rst │ ├── lab3.rst │ ├── lab30.rst │ ├── lab31.rst │ ├── lab4.rst │ ├── lab5.rst │ ├── lab6.rst │ ├── lab7.rst │ ├── lab8.rst │ ├── lab9.rst │ └── pages │ ├── about.rst │ └── authors.rst ├── content ├── extra │ ├── favicon.png │ ├── lab22 │ │ ├── ceasar.txt │ │ ├── find_a_fish.txt │ │ ├── matplotlib │ │ │ ├── raw_parabola.png │ │ │ └── two_plots.png │ │ └── task1.txt │ ├── lab27 │ │ └── mst.zip │ └── lab29 │ │ └── games_theory.zip ├── images │ ├── lab1 │ │ ├── broken_hdd.jpg │ │ └── smoking_computer.jpg │ ├── logo.png │ └── logo.svg ├── jslib │ └── jquery-3.3.1.min.js ├── lab1.rst ├── lab10.rst ├── lab11.rst ├── lab12.rst ├── lab13.rst ├── lab14.rst ├── lab15.rst ├── lab16.rst ├── lab17.rst ├── lab18.rst ├── lab19.rst ├── lab2.rst ├── lab20.rst ├── lab21.rst ├── lab22.rst ├── lab23.rst ├── lab24.rst ├── lab25.rst ├── lab26.rst ├── lab27.rst ├── lab28.rst ├── lab29.rst ├── lab3.rst ├── lab30.rst ├── lab31.rst ├── lab4.rst ├── lab5.rst ├── lab6.rst ├── lab7.rst ├── lab8.rst ├── lab9.rst └── pages │ ├── about.rst │ └── authors.rst ├── develop_server.sh ├── pelicanconf.py ├── plugins ├── .gitignore ├── .gitmodules ├── .travis.yml ├── Contributing.rst ├── LICENSE ├── Readme.rst ├── always_modified │ ├── README.md │ ├── __init__.py │ └── always_modified.py ├── asciidoc_reader │ ├── README.rst │ ├── __init__.py │ ├── asciidoc_reader.py │ ├── asciidocapi.py │ ├── test_asciidoc_reader.py │ └── test_data │ │ ├── article_with_asc_extension.asc │ │ └── article_with_asc_options.asc ├── assets │ ├── Readme.rst │ ├── __init__.py │ ├── assets.py │ ├── test_assets.py │ └── test_data │ │ ├── static │ │ └── css │ │ │ ├── style.min.css │ │ │ └── style.scss │ │ └── templates │ │ └── base.html ├── author_images │ ├── README.md │ ├── __init__.py │ ├── author_images.py │ └── generate_hashsum.py ├── autopages │ ├── LICENSE │ ├── README.md │ ├── __init__.py │ └── autopages.py ├── better_codeblock_line_numbering │ ├── Readme.md │ ├── __init__.py │ └── better_codeblock_line_numbering.py ├── better_figures_and_images │ ├── README.rst │ ├── __init__.py │ ├── better_figures_and_images.py │ └── test_data │ │ ├── dummy-200x200.png │ │ ├── dummy-250x300.png │ │ ├── dummy-800x300.png │ │ ├── images-test.html │ │ └── images-test.rst ├── better_tables │ ├── LICENSE │ ├── README.md │ ├── __init__.py │ └── better_tables.py ├── bootstrap-rst │ ├── 140x140.png │ ├── 171x180.png │ ├── 300x200.png │ ├── LICENSE │ ├── Makefile │ ├── README.rst │ ├── __init__.py │ ├── bootstrap.py │ ├── bootstrap │ │ ├── css │ │ │ ├── bootstrap-theme.css │ │ │ ├── bootstrap-theme.css.map │ │ │ ├── bootstrap-theme.min.css │ │ │ ├── bootstrap.css │ │ │ ├── bootstrap.css.map │ │ │ └── bootstrap.min.css │ │ ├── fonts │ │ │ ├── glyphicons-halflings-regular.eot │ │ │ ├── glyphicons-halflings-regular.svg │ │ │ ├── glyphicons-halflings-regular.ttf │ │ │ └── glyphicons-halflings-regular.woff │ │ └── js │ │ │ ├── bootstrap.js │ │ │ └── bootstrap.min.js │ ├── custom.css │ ├── directives.py │ ├── doc │ │ ├── CSS-buttons.txt │ │ ├── CSS-code.txt │ │ ├── CSS-grid-system.txt │ │ ├── CSS-helpers.txt │ │ ├── CSS-images.txt │ │ ├── CSS-overview.txt │ │ ├── CSS-tables.txt │ │ ├── CSS-typography.txt │ │ ├── CSS.rst │ │ ├── bootstrap-glyphs.txt │ │ ├── bootstrap-roles.txt │ │ ├── components-alerts.txt │ │ ├── components-badges.txt │ │ ├── components-breadcrumbs.txt │ │ ├── components-glyphicons.txt │ │ ├── components-jumbotron.txt │ │ ├── components-labels.txt │ │ ├── components-page-header.txt │ │ ├── components-pagination.txt │ │ ├── components-progress.txt │ │ ├── components-thumbnails.txt │ │ ├── components-wells.txt │ │ ├── components.rst │ │ ├── getting-started.rst │ │ ├── glyphicons-defs.txt │ │ ├── glyphicons-list.txt │ │ └── index.rst │ ├── docs-min.css │ ├── make-glyphicons.py │ ├── page.tmpl │ ├── pygments.css │ └── roles.py ├── category_meta │ ├── README.md │ ├── __init__.py │ └── category_meta.py ├── clean_summary │ ├── README.md │ ├── __init__.py │ └── clean_summary.py ├── code_include │ ├── README.rst │ ├── __init__.py │ └── code_include.py ├── collate_content │ ├── .gitignore │ ├── LICENSE │ ├── README.md │ ├── __init__.py │ ├── collate_content.py │ └── test_collate_content.py ├── creole_reader │ ├── Readme.md │ ├── __init__.py │ └── creole_reader.py ├── custom_article_urls │ ├── README.md │ ├── __init__.py │ └── custom_article_urls.py ├── dateish │ ├── Readme.rst │ ├── __init__.py │ └── dateish.py ├── disqus_static │ ├── README.rst │ ├── __init__.py │ └── disqus_static.py ├── events │ ├── README.md │ ├── __init__.py │ ├── events.py │ └── events_list.html ├── extract_toc │ ├── README.md │ ├── __init__.py │ └── extract_toc.py ├── feed_summary │ ├── Readme.md │ ├── __init__.py │ ├── feed_summary.py │ └── magic_set.py ├── filetime_from_git │ ├── README.rst │ ├── __init__.py │ ├── actions.py │ ├── content_adapter.py │ ├── git_wrapper.py │ ├── registration.py │ └── utils.py ├── filetime_from_hg │ ├── README.rst │ ├── __init__.py │ └── filetime_from_hg.py ├── footer_insert │ ├── README.md │ ├── __init__.py │ └── footer_insert.py ├── gallery │ ├── README.md │ ├── __init__.py │ └── gallery.py ├── gist_directive │ ├── README.rst │ ├── __init__.py │ └── gist_directive.py ├── github-wiki │ ├── ReadMe.md │ ├── __init__.py │ ├── wiki.js │ ├── wiki.py │ └── wikiarticle.html ├── github_activity │ ├── Readme.rst │ ├── __init__.py │ └── github_activity.py ├── global_license │ ├── Readme.rst │ ├── __init__.py │ └── global_license.py ├── glossary │ ├── __init__.py │ ├── glossary.py │ └── readme.md ├── goodreads_activity │ ├── Readme.md │ ├── __init__.py │ └── goodreads_activity.py ├── googleplus_comments │ ├── Readme.md │ ├── __init__.py │ └── googleplus_comments.py ├── gravatar │ ├── Readme.rst │ ├── __init__.py │ └── gravatar.py ├── gzip_cache │ ├── Readme.rst │ ├── __init__.py │ ├── gzip_cache.py │ └── test_gzip_cache.py ├── headerid │ ├── README.rst │ ├── __init__.py │ └── headerid.py ├── html_entity │ ├── README.rst │ ├── __init__.py │ └── html_entity.py ├── html_rst_directive │ ├── Readme.rst │ ├── __init__.py │ └── html_rst_directive.py ├── i18n_subsites │ ├── README.rst │ ├── __init__.py │ ├── i18n_subsites.py │ ├── implementing_language_buttons.rst │ ├── localizing_using_jinja2.rst │ ├── test_data │ │ ├── content │ │ │ ├── images │ │ │ │ └── img.png │ │ │ ├── pages │ │ │ │ ├── hidden-page-cz.rst │ │ │ │ ├── hidden-page-de.rst │ │ │ │ ├── hidden-page-en.rst │ │ │ │ └── untranslated-page.rst │ │ │ ├── translated_article-cz.rst │ │ │ ├── translated_article-de.rst │ │ │ ├── translated_article-en.rst │ │ │ └── untranslated_article-en.rst │ │ ├── localized_theme │ │ │ ├── babel.cfg │ │ │ ├── messages.pot │ │ │ ├── static │ │ │ │ └── style.css │ │ │ ├── templates │ │ │ │ └── base.html │ │ │ └── translations │ │ │ │ └── de │ │ │ │ └── LC_MESSAGES │ │ │ │ ├── messages.mo │ │ │ │ └── messages.po │ │ ├── output │ │ │ ├── an-untranslated-article.html │ │ │ ├── cz │ │ │ │ ├── an-untranslated-article-en.html │ │ │ │ ├── feeds_all.atom.xml │ │ │ │ ├── index.html │ │ │ │ ├── pages │ │ │ │ │ └── 404.html │ │ │ │ └── translated-article.html │ │ │ ├── de │ │ │ │ ├── drafts │ │ │ │ │ └── an-untranslated-article-en.html │ │ │ │ ├── feeds_all.atom.xml │ │ │ │ ├── index.html │ │ │ │ ├── pages │ │ │ │ │ ├── 404.html │ │ │ │ │ └── untranslated-page-en.html │ │ │ │ └── translated-article.html │ │ │ ├── feeds_all.atom.xml │ │ │ ├── images │ │ │ │ └── img.png │ │ │ ├── index.html │ │ │ ├── pages │ │ │ │ ├── 404.html │ │ │ │ └── untranslated-page.html │ │ │ ├── theme │ │ │ │ └── style.css │ │ │ └── translated-article.html │ │ └── pelicanconf.py │ └── test_i18n_subsites.py ├── ical │ ├── Readme.rst │ ├── __init__.py │ └── ical.py ├── interlinks │ ├── __init__.py │ ├── interlinks.py │ ├── readme.md │ └── test_data │ │ └── testme.md ├── jinja2content │ ├── README.md │ ├── __init__.py │ └── jinja2content.py ├── latex ├── libravatar │ ├── .gitignore │ ├── Readme.md │ ├── __init__.py │ ├── libravatar.py │ ├── test_data │ │ └── theme │ │ │ └── templates │ │ │ └── article.html │ └── test_libravatar.py ├── linker │ ├── Readme.md │ ├── __init__.py │ ├── content_objects.py │ ├── linker.py │ └── mailto.py ├── liquid_tags │ ├── .gitignore │ ├── Readme.md │ ├── __init__.py │ ├── audio.py │ ├── b64img.py │ ├── diag.py │ ├── flickr.py │ ├── giphy.py │ ├── gram.py │ ├── graphviz.py │ ├── img.py │ ├── include_code.py │ ├── liquid_tags.py │ ├── literal.py │ ├── mdx_liquid_tags.py │ ├── notebook.py │ ├── pelicanhtml_1.tpl │ ├── pelicanhtml_2.tpl │ ├── pelicanhtml_3.tpl │ ├── pygalcharts.py │ ├── soundcloud.py │ ├── speakerdeck.py │ ├── spotify.py │ ├── test_audio.py │ ├── test_data │ │ ├── content │ │ │ ├── notebooks │ │ │ │ ├── test_nbformat3.ipynb │ │ │ │ └── test_nbformat4.ipynb │ │ │ ├── test-ipython-notebook-nbformat3.md │ │ │ └── test-ipython-notebook-nbformat4.md │ │ ├── flickr.json │ │ ├── giphy.json │ │ ├── output │ │ │ ├── index.html │ │ │ ├── test-ipython-notebook-nb-format-3.html │ │ │ └── test-ipython-notebook-nb-format-4.html │ │ ├── pelicanconf.py │ │ ├── pelicanhtml_2.tpl │ │ └── pelicanhtml_3.tpl │ ├── test_flickr.py │ ├── test_generation.py │ ├── test_giphy.py │ ├── test_notebook.py │ ├── test_soundcloud.py │ ├── tox.ini │ ├── video.py │ ├── vimeo.py │ └── youtube.py ├── md_inline_extension │ ├── Readme.md │ ├── __init__.py │ ├── inline.py │ └── pelican_inline_markdown_extension.py ├── members │ ├── Readme.rst │ ├── __init__.py │ └── members.py ├── multi_part │ ├── Readme.md │ ├── __init__.py │ └── multi_part.py ├── neighbors │ ├── Readme.rst │ ├── __init__.py │ └── neighbors.py ├── optimize_images │ ├── Readme.md │ ├── __init__.py │ └── optimize_images.py ├── org_reader │ ├── LICENSE │ ├── README.md │ ├── __init__.py │ ├── org_reader.el │ └── org_reader.py ├── pdf │ ├── Readme.rst │ ├── __init__.py │ ├── pdf.py │ └── test_pdf.py ├── pelican-rdf │ ├── ReadMe.md │ ├── __init__.py │ ├── pelican_rdf.py │ └── sparql-queries │ │ ├── classes.sparql │ │ └── lov_metadata.sparql ├── pelican_comment_system │ ├── CHANGELOG.md │ ├── Readme.md │ ├── __init__.py │ ├── avatars.py │ ├── comment.py │ ├── doc │ │ ├── avatars.md │ │ ├── feed.md │ │ ├── import.md │ │ ├── installation.md │ │ └── quickstart.md │ ├── identicon │ │ ├── LICENSE │ │ ├── README.md │ │ ├── __init__.py │ │ └── identicon.py │ ├── import │ │ └── blogger_comment_export.py │ ├── pelican_comment_system.py │ └── theme │ │ ├── static │ │ └── js │ │ │ └── comments.js │ │ └── templates │ │ └── pcs │ │ └── comments.html ├── pelican_unity_webgl │ ├── LICENSE.txt │ ├── README.rst │ ├── UnityGameDirective.py │ ├── __init__.py │ ├── config.py │ ├── template.txt │ └── test_unitywebgl.py ├── permalinks │ ├── README.md │ ├── __init__.py │ └── permalinks.py ├── photos │ ├── README.md │ ├── SourceCodePro-Bold.otf │ ├── SourceCodePro-Regular.otf │ ├── __init__.py │ ├── licenses.json │ ├── photos.py │ ├── requirements.txt │ ├── test_data │ │ ├── agallery │ │ │ ├── best.jpg │ │ │ ├── captions.txt │ │ │ ├── exif.txt │ │ │ └── night.png │ │ ├── filename.md │ │ └── photo.md │ └── test_photos.py ├── plantuml │ ├── Readme.rst │ ├── __init__.py │ ├── generateUmlDiagram.py │ ├── pandoc-plantuml │ ├── plantuml_md.py │ └── plantuml_rst.py ├── post_stats │ ├── __init__.py │ ├── post_stats.py │ ├── readability.py │ └── readme.rst ├── random_article │ ├── Readme.md │ ├── __init__.py │ └── random_article.py ├── read_more_link │ ├── Readme.md │ ├── __init__.py │ ├── read_more_link.py │ └── requirements.txt ├── related_posts │ ├── Readme.rst │ ├── __init__.py │ └── related_posts.py ├── render_math │ ├── Readme.md │ ├── __init__.py │ ├── math.py │ ├── mathjax_script_template │ └── pelican_mathjax_markdown_extension.py ├── representative_image │ ├── Readme.md │ ├── __init__.py │ ├── representative_image.py │ └── test_representative_image.py ├── rmd_reader │ ├── Readme.md │ ├── __init__.py │ ├── rmd_reader.py │ └── test_rmd_reader.py ├── section_number │ ├── Readme.md │ ├── __init__.py │ └── section_number.py ├── series │ ├── Readme.md │ ├── __init__.py │ └── series.py ├── share_post │ ├── README.md │ ├── __init__.py │ └── share_post.py ├── show_source │ ├── ReadMe.rst │ ├── __init__.py │ └── show_source.py ├── simple_footnotes │ ├── README.md │ ├── __init__.py │ ├── simple_footnotes.py │ └── test_simple_footnotes.py ├── sitemap │ ├── Readme.rst │ ├── __init__.py │ └── sitemap.py ├── slim │ ├── README.md │ ├── __init__.py │ └── slim.py ├── static_comments │ ├── Readme.md │ ├── __init__.py │ └── static_comments.py ├── sub_parts │ ├── README.md │ ├── __init__.py │ ├── sub_parts.py │ ├── test_data │ │ ├── noparent.md │ │ ├── parent--implicit.md │ │ ├── parent-explicit.md │ │ └── parent.md │ └── test_sub_parts.py ├── subcategory │ ├── README.md │ ├── __init__.py │ └── subcategory.py ├── summary │ ├── Readme.rst │ ├── __init__.py │ ├── summary.py │ └── test_summary.py ├── tag_cloud │ ├── README.rst │ ├── __init__.py │ ├── tag_cloud.py │ ├── test_data │ │ ├── article_1.md │ │ ├── article_2.md │ │ ├── article_3.md │ │ ├── article_4.md │ │ └── article_5.md │ └── test_tag_cloud.py ├── test_data │ ├── Readme.rst │ ├── content │ │ ├── 2012-11-30_filename-metadata.rst │ │ ├── another_super_article-fr.rst │ │ ├── another_super_article.rst │ │ ├── article2-fr.rst │ │ ├── article2.rst │ │ ├── cat1 │ │ │ ├── article1.rst │ │ │ ├── article2.rst │ │ │ ├── article3.rst │ │ │ └── markdown-article.md │ │ ├── draft_article.rst │ │ ├── extra │ │ │ └── robots.txt │ │ ├── pages │ │ │ ├── hidden_page.rst │ │ │ ├── jinja2_template.html │ │ │ ├── override_url_saveas.rst │ │ │ └── test_page.rst │ │ ├── pictures │ │ │ ├── Fat_Cat.jpg │ │ │ ├── Sushi.jpg │ │ │ └── Sushi_Macro.jpg │ │ ├── super_article.rst │ │ ├── unbelievable.rst │ │ └── unwanted_file │ ├── pelican.conf.py │ └── themes │ │ ├── notmyidea │ │ ├── static │ │ │ ├── css │ │ │ │ ├── main.css │ │ │ │ ├── pygment.css │ │ │ │ ├── reset.css │ │ │ │ ├── typogrify.css │ │ │ │ └── wide.css │ │ │ └── images │ │ │ │ └── icons │ │ │ │ ├── aboutme.png │ │ │ │ ├── bitbucket.png │ │ │ │ ├── delicious.png │ │ │ │ ├── facebook.png │ │ │ │ ├── github.png │ │ │ │ ├── gitorious.png │ │ │ │ ├── gittip.png │ │ │ │ ├── google-groups.png │ │ │ │ ├── google-plus.png │ │ │ │ ├── hackernews.png │ │ │ │ ├── lastfm.png │ │ │ │ ├── linkedin.png │ │ │ │ ├── reddit.png │ │ │ │ ├── rss.png │ │ │ │ ├── slideshare.png │ │ │ │ ├── speakerdeck.png │ │ │ │ ├── twitter.png │ │ │ │ ├── vimeo.png │ │ │ │ └── youtube.png │ │ └── templates │ │ │ ├── analytics.html │ │ │ ├── archives.html │ │ │ ├── article.html │ │ │ ├── article_infos.html │ │ │ ├── author.html │ │ │ ├── authors.html │ │ │ ├── base.html │ │ │ ├── category.html │ │ │ ├── comments.html │ │ │ ├── disqus_script.html │ │ │ ├── github.html │ │ │ ├── index.html │ │ │ ├── page.html │ │ │ ├── piwik.html │ │ │ ├── tag.html │ │ │ ├── taglist.html │ │ │ ├── translations.html │ │ │ └── twitter.html │ │ └── simple │ │ └── templates │ │ ├── archives.html │ │ ├── article.html │ │ ├── author.html │ │ ├── base.html │ │ ├── categories.html │ │ ├── category.html │ │ ├── gosquared.html │ │ ├── index.html │ │ ├── page.html │ │ ├── pagination.html │ │ ├── tag.html │ │ ├── tags.html │ │ └── translations.html ├── textile_reader │ ├── Readme.textile │ ├── __init__.py │ └── textile_reader.py ├── thumbnailer │ ├── Readme.md │ ├── __init__.py │ ├── test_data │ │ ├── expected_exact.jpg │ │ ├── expected_height.jpg │ │ ├── expected_square.jpg │ │ ├── expected_width.jpg │ │ ├── sample_image.jpg │ │ └── subdir │ │ │ └── sample_image.jpg │ ├── test_thumbnails.py │ └── thumbnailer.py ├── tipue_search │ ├── README.md │ ├── __init__.py │ └── tipue_search.py ├── touch │ ├── README.rst │ └── __init__.py ├── twitter_bootstrap_rst_directives │ ├── Demo.rst │ ├── Readme.rst │ ├── __init__.py │ └── bootstrap_rst_directives.py ├── txt2tags_reader │ ├── LICENSE │ ├── README.md │ ├── __init__.py │ └── txt2tags_reader.py ├── video_privacy_enhancer │ ├── Readme.md │ ├── __init__.py │ ├── video_privacy_enhancer.py │ ├── video_privacy_enhancer_jquery.js │ └── video_service_thumbnail_url_generating_functions.py ├── w3c_validate │ ├── README.md │ ├── __init__.py │ └── wc3_validate.py └── yuicompressor │ ├── .gitignore │ ├── README.md │ ├── __init__.py │ └── yuicompressor.py ├── publishconf.py ├── requirements.txt └── themes └── the-theme ├── static ├── css │ ├── main.css │ ├── pygment.css │ ├── reset.css │ ├── typogrify.css │ └── wide.css ├── fonts │ ├── cyrillic.woff2 │ ├── latin-ext.woff2 │ └── latin.woff2 └── images │ ├── icons │ ├── aboutme.png │ ├── bitbucket.png │ ├── delicious.png │ ├── facebook.png │ ├── github.png │ ├── gitorious.png │ ├── gittip.png │ ├── google-groups.png │ ├── google-plus.png │ ├── hackernews.png │ ├── lastfm.png │ ├── linkedin.png │ ├── reddit.png │ ├── rss.png │ ├── slideshare.png │ ├── speakerdeck.png │ ├── stackoverflow.png │ ├── twitter.png │ ├── vimeo.png │ └── youtube.png │ └── logo.svg └── templates ├── analytics.html ├── archives.html ├── article.html ├── author.html ├── authors.html ├── base.html ├── category.html ├── comments.html ├── disqus_script.html ├── github.html ├── index.html ├── page.html ├── period_archives.html ├── tag.html ├── taglist.html ├── tags.html ├── translations.html └── twitter.html /.github/workflows/html_deploy.yml: -------------------------------------------------------------------------------- 1 | name: html_deploy 2 | on: 3 | push: 4 | branches: 5 | - master 6 | jobs: 7 | main_job: 8 | runs-on: ubuntu-latest 9 | environment: deployment 10 | env: 11 | DEPLOY_KEYS: ${{ secrets.DEPLOY_KEYS }} 12 | steps: 13 | - uses: actions/checkout@v2 14 | - uses: actions/setup-python@v2 15 | with: 16 | python-version: '3.7' 17 | architecture: 'x64' 18 | - run: pip install pelican beautifulsoup4 19 | - run: base64 -d <<< $DEPLOY_KEYS | tar -xz -C $HOME 20 | - run: make html 21 | - run: make rsync_upload 22 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | cache 2 | output 3 | __pycache__ 4 | *.pyc 5 | *.sublime-* 6 | *.pid 7 | *.db 8 | .idea/ 9 | venv 10 | .vscode 11 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | dist: xenial 2 | language: python 3 | python: 4 | - '3.7' 5 | install: pip install pelican beautifulsoup4 pelican-youtube 6 | before_script: 7 | - base64 -d <<< $DEPLOY_KEYS | tar -xz -C $HOME 8 | script: 9 | - make html 10 | branches: 11 | only: 12 | - master 13 | notifications: 14 | email: 15 | on_success: change 16 | on_failure: always 17 | 18 | after_success: 19 | - make rsync_upload 20 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Build Status](https://travis-ci.org/mipt-cs/course-algo.svg?branch=master)](https://travis-ci.org/mipt-cs/course-algo) 2 | 3 | 4 | # course-algo 5 | Сайт курса "Алгоритмы и структуры данных" 6 | -------------------------------------------------------------------------------- /content-old/2018/code/lab1/hello_world.c: -------------------------------------------------------------------------------- 1 | #include 2 | 3 | int main(int argc, char* argv[]) 4 | { 5 | printf("Hello, World!\n"); 6 | return 0; 7 | } 8 | -------------------------------------------------------------------------------- /content-old/2018/code/lab10/example.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/code/lab10/example.zip -------------------------------------------------------------------------------- /content-old/2018/extra/BFS.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/extra/BFS.pdf -------------------------------------------------------------------------------- /content-old/2018/extra/Hash.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/extra/Hash.pdf -------------------------------------------------------------------------------- /content-old/2018/extra/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/extra/favicon.png -------------------------------------------------------------------------------- /content-old/2018/extra/lab22/task6/convert.py: -------------------------------------------------------------------------------- 1 | def convert(fi, fo): 2 | d = {} 3 | with open(fi) as f: 4 | for line in f: 5 | words = line.strip().split('\t-\t') 6 | if words[0] not in d: 7 | d[words[0]]=set() 8 | d[words[0]].add(words[1]) 9 | with open(fo, 'w') as f: 10 | for k in d: 11 | print(k,','.join(d[k]), sep='\t-\t', file=f) 12 | 13 | convert('input.txt', 'en-ru.txt') 14 | convert('output.txt', 'ru-en.txt') 15 | -------------------------------------------------------------------------------- /content-old/2018/extra/lab22/task8/input.txt: -------------------------------------------------------------------------------- 1 | 9 8 0 2 | 2 2,4 0,10 0 3 | 4 3,8 0,11 0,11 0,12 2 4 | 0 2,2 0,4 2,6 2,9 2 5 | 5 0,8 0,10 3,12 2,13 2 6 | 9 3,12 2 7 | 11 3 8 | 2 2,2 2,7 0,9 3,13 3 9 | 3 2,10 3,13 2,13 2 10 | 3 3 11 | 5 3,6 2,9 3,13 3 12 | 5 3,8 2 13 | 7 2,7 2,11 0,12 2,13 2,14 3 14 | -------------------------------------------------------------------------------- /content-old/2018/extra/lab22/task8/output.txt: -------------------------------------------------------------------------------- 1 | 12 5 2 | ######### 3 | Ответ: 2 4 | ######### 5 | N = 9 M = 8 K = 0 6 | 0 : 2 2,4 0,10 0 7 | 1 : 4 3,8 0,11 0,11 0,12 2 8 | 2 : 0 2,2 0,4 2,6 2,9 2 9 | 3 : 5 0,8 0,10 3,12 2,13 2 10 | 4 : 9 3,12 2 11 | 5 : 11 3 12 | 6 : 2 2,2 2,7 0,9 3,13 3 13 | 7 : 3 2,10 3,13 2,13 2 14 | 8 : 3 3 15 | 9 : 5 3,6 2,9 3,13 3 16 | 10 : 5 3,8 2 17 | 11 : 7 2,7 2,11 0,12 2,13 2,14 3 18 | 19 | -------------------------------------------------------------------------------- /content-old/2018/extra/lab24/mass_table.txt: -------------------------------------------------------------------------------- 1 | { 2 | "A": 71.03711, 3 | "C": 103.00919, 4 | "D": 115.02694, 5 | "E": 129.04259, 6 | "F": 147.06841, 7 | "G": 57.02146, 8 | "H": 137.05891, 9 | "I": 113.08406, 10 | "K": 128.09496, 11 | "L": 113.08406, 12 | "M": 131.04049, 13 | "N": 114.04293, 14 | "P": 97.05276, 15 | "Q": 128.05858, 16 | "R": 156.10111, 17 | "S": 87.03203, 18 | "T": 101.04768, 19 | "V": 99.06841, 20 | "W": 186.07931, 21 | "Y": 163.06333 22 | } -------------------------------------------------------------------------------- /content-old/2018/images/640px-Kmp_pict2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/640px-Kmp_pict2.png -------------------------------------------------------------------------------- /content-old/2018/images/671px-Colors.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/671px-Colors.png -------------------------------------------------------------------------------- /content-old/2018/images/Lagrange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/Lagrange.png -------------------------------------------------------------------------------- /content-old/2018/images/Prefix.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/Prefix.jpg -------------------------------------------------------------------------------- /content-old/2018/images/Z-func.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/Z-func.png -------------------------------------------------------------------------------- /content-old/2018/images/lab1/broken_hdd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/lab1/broken_hdd.jpg -------------------------------------------------------------------------------- /content-old/2018/images/lab1/flower.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/lab1/flower.gif -------------------------------------------------------------------------------- /content-old/2018/images/lab1/smoking_computer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/lab1/smoking_computer.jpg -------------------------------------------------------------------------------- /content-old/2018/images/lab17/.readme: -------------------------------------------------------------------------------- 1 | Gifs for turtle tasks 2 | -------------------------------------------------------------------------------- /content-old/2018/images/lab17/Numbers_alkans.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/lab17/Numbers_alkans.jpg -------------------------------------------------------------------------------- /content-old/2018/images/lab17/butterfly.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/lab17/butterfly.gif -------------------------------------------------------------------------------- /content-old/2018/images/lab17/circle.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/lab17/circle.gif -------------------------------------------------------------------------------- /content-old/2018/images/lab17/flower.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/lab17/flower.gif -------------------------------------------------------------------------------- /content-old/2018/images/lab17/nested_rectangles.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/lab17/nested_rectangles.gif -------------------------------------------------------------------------------- /content-old/2018/images/lab17/rect_spiral.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/lab17/rect_spiral.gif -------------------------------------------------------------------------------- /content-old/2018/images/lab17/rectangle.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/lab17/rectangle.gif -------------------------------------------------------------------------------- /content-old/2018/images/lab17/regular_polygon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/lab17/regular_polygon.gif -------------------------------------------------------------------------------- /content-old/2018/images/lab17/smile.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/lab17/smile.gif -------------------------------------------------------------------------------- /content-old/2018/images/lab17/spider.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/lab17/spider.gif -------------------------------------------------------------------------------- /content-old/2018/images/lab17/spiral.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/lab17/spiral.gif -------------------------------------------------------------------------------- /content-old/2018/images/lab17/spring.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/lab17/spring.gif -------------------------------------------------------------------------------- /content-old/2018/images/lab17/star11.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/lab17/star11.gif -------------------------------------------------------------------------------- /content-old/2018/images/lab17/star5.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/lab17/star5.gif -------------------------------------------------------------------------------- /content-old/2018/images/lab22/ex2_formula.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/lab22/ex2_formula.png -------------------------------------------------------------------------------- /content-old/2018/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/logo.png -------------------------------------------------------------------------------- /content-old/2018/images/machine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/machine.png -------------------------------------------------------------------------------- /content-old/2018/images/matrix_graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/matrix_graph.png -------------------------------------------------------------------------------- /content-old/2018/images/primergraph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/primergraph.png -------------------------------------------------------------------------------- /content-old/2018/images/spisok_graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/spisok_graph.png -------------------------------------------------------------------------------- /content-old/2018/images/table func.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/table func.png -------------------------------------------------------------------------------- /content-old/2018/images/tps1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/tps1.PNG -------------------------------------------------------------------------------- /content-old/2018/images/tps2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/tps2.PNG -------------------------------------------------------------------------------- /content-old/2018/images/tps3.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/tps3.PNG -------------------------------------------------------------------------------- /content-old/2018/images/tps4.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/tps4.PNG -------------------------------------------------------------------------------- /content-old/2018/images/tps5.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/tps5.PNG -------------------------------------------------------------------------------- /content-old/2018/images/tps6.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/tps6.PNG -------------------------------------------------------------------------------- /content-old/2018/images/tps7.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/tps7.PNG -------------------------------------------------------------------------------- /content-old/2018/images/tps8.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/tps8.PNG -------------------------------------------------------------------------------- /content-old/2018/images/tps9.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/tps9.PNG -------------------------------------------------------------------------------- /content-old/2018/images/type data.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/type data.bmp -------------------------------------------------------------------------------- /content-old/2018/images/type data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/type data.png -------------------------------------------------------------------------------- /content-old/2018/images/type_data.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2018/images/type_data.png -------------------------------------------------------------------------------- /content-old/2018/lab11.rst: -------------------------------------------------------------------------------- 1 | Квадратичные сортировки 2 | ####################### 3 | 4 | :date: 2018-11-12 22:00 5 | :summary: Указатели и сортировки 6 | :status: published 7 | 8 | 9 | 10 | .. default-role:: code 11 | 12 | .. contents:: Содержание 13 | 14 | .. role:: c(code) 15 | :language: cpp 16 | 17 | Учебный контест 18 | ================ 19 | 20 | Ссылка на учебный контест__ по сортировкам и работе со структурами 21 | 22 | .. __: http://93.175.29.65/cgi-bin/new-register?contest_id=840111 23 | 24 | -------------------------------------------------------------------------------- /content-old/2018/lab12.rst: -------------------------------------------------------------------------------- 1 | Рекурсия 2 | ####################### 3 | 4 | :date: 2018-11-19 22:00 5 | :summary: Рекурсия 6 | :status: published 7 | 8 | 9 | 10 | .. default-role:: code 11 | 12 | .. contents:: Содержание 13 | 14 | .. role:: c(code) 15 | :language: cpp 16 | 17 | Учебный контест 18 | ================ 19 | 20 | Ссылка на учебный контест__ по рекурсии. 21 | 22 | .. __: http://93.175.29.65/cgi-bin/new-register?contest_id=845512 23 | 24 | -------------------------------------------------------------------------------- /content-old/2018/lab14.rst: -------------------------------------------------------------------------------- 1 | Динамическое программирование: контест 2 | ######################################### 3 | 4 | :date: 2018-12-03 22:00 5 | :summary: Динамическое программирование: контест 6 | :status: published 7 | 8 | 9 | 10 | .. default-role:: code 11 | 12 | .. contents:: Содержание 13 | 14 | .. role:: c(code) 15 | :language: cpp 16 | 17 | Учебный контест 18 | ================ 19 | 20 | Ссылка на учебный контест__ по динпрограммированию. 21 | 22 | .. __: http://93.175.29.65/cgi-bin/new-register?contest_id=840114 23 | 24 | -------------------------------------------------------------------------------- /content-old/2018/lab15.rst: -------------------------------------------------------------------------------- 1 | Контрольная работа №2 2 | ##################### 3 | 4 | :date: 2018-12-10 09:00 5 | :summary: Семестровая контрольная работа 6 | :status: published 7 | 8 | 9 | 10 | .. default-role:: code 11 | 12 | .. contents:: Содержание 13 | 14 | .. role:: c(code) 15 | :language: cpp 16 | 17 | Ссылка на контрольную 18 | ===================== 19 | 20 | Ссылка на контрольную__. 21 | 22 | .. __: http://93.175.29.65/cgi-bin/new-register?contest_id=840011 23 | 24 | -------------------------------------------------------------------------------- /content-old/2018/lab21.rst: -------------------------------------------------------------------------------- 1 | Строки: контест 2 | ############### 3 | 4 | :date: 2019-03-05 09:00 5 | :summary: Строки: контест 6 | :status: published 7 | 8 | 9 | 10 | .. default-role:: code 11 | 12 | .. contents:: Содержание 13 | 14 | .. role:: c(code) 15 | :language: python 16 | 17 | Учебный контест 18 | ================ 19 | 20 | Ссылка на учебный контест__. 21 | 22 | .. __: http://93.175.29.65/cgi-bin/new-register?contest_id=840205 23 | 24 | -------------------------------------------------------------------------------- /content-old/2018/lab24.rst: -------------------------------------------------------------------------------- 1 | Контрольная работа №1 2 | ##################### 3 | 4 | :date: 2019-03-26 09:00 5 | :summary: полусеместровая контрольная 6 | :status: published 7 | 8 | 9 | 10 | .. default-role:: code 11 | 12 | .. contents:: Содержание 13 | 14 | .. role:: c(code) 15 | :language: python 16 | 17 | 18 | Ссылка на контрольную 19 | ===================== 20 | 21 | Ссылка на полусеместровую контрольную__. 22 | 23 | .. __: http://93.175.29.65/cgi-bin/new-register?contest_id=840207 24 | 25 | Обратите внимание, что в задаче E вам понадобится таблица масс: `mass_table.txt`_. 26 | 27 | Файл из себя представляет уже готовый код питоновского словаря. Вам просто нужно скопировать его и вставить в ваш код, присвоив какой-нибудь переменной. 28 | 29 | .. _`mass_table.txt`: /algo/extra/lab24/mass_table.txt 30 | 31 | -------------------------------------------------------------------------------- /content-old/2018/lab26.rst: -------------------------------------------------------------------------------- 1 | Учебный контест. Представление графов и поиск в глубину. 2 | ######################################################## 3 | 4 | :date: 2019-04-09 09:00 5 | :summary: полусеместровая контрольная 6 | :status: published 7 | 8 | 9 | 10 | .. default-role:: code 11 | 12 | .. contents:: Содержание 13 | 14 | .. role:: c(code) 15 | :language: python 16 | 17 | 18 | Ссылка на контест 19 | ================= 20 | 21 | Вход в тестирующую систему Ejudge 22 | --------------------------------- 23 | 24 | `Контест для 83* групп.`__ 25 | 26 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=730210 27 | 28 | 29 | `Контест для 84* групп.`__ 30 | 31 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=740210 32 | 33 | 34 | `Контест для 711* групп.`__ 35 | 36 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=610210 37 | 38 | -------------------------------------------------------------------------------- /content-old/2018/lab28.rst: -------------------------------------------------------------------------------- 1 | Учебный контест. Поиск в ширину. 2 | ######################################################## 3 | 4 | :date: 2019-04-23 09:00 5 | :summary: Поиск в ширину: контест 6 | :status: published 7 | 8 | 9 | 10 | .. default-role:: code 11 | 12 | .. contents:: Содержание 13 | 14 | .. role:: c(code) 15 | :language: python 16 | 17 | 18 | Ссылка на контест 19 | ================= 20 | 21 | Вход в тестирующую систему Ejudge 22 | --------------------------------- 23 | 24 | `Контест для 83* групп.`__ 25 | 26 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=730211 27 | 28 | 29 | `Контест для 84* групп.`__ 30 | 31 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=740211 32 | 33 | 34 | `Контест для 711* групп.`__ 35 | 36 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=610211 37 | 38 | 39 | 40 | Методическое пособие по BFS. 41 | 42 | 43 | .. _`Кратчайшие пути в невзвешенных графах`: /algo/extra/BFS.pdf 44 | 45 | `Кратчайшие пути в невзвешенных графах`_ 46 | 47 | -------------------------------------------------------------------------------- /content-old/2018/lab30.rst: -------------------------------------------------------------------------------- 1 | Контрольная работа №2 2 | ##################### 3 | 4 | :date: 2019-05-13 09:00 5 | :summary: семестровая контрольная 6 | :status: published 7 | 8 | 9 | 10 | .. default-role:: code 11 | 12 | .. contents:: Содержание 13 | 14 | .. role:: c(code) 15 | :language: python 16 | 17 | 18 | Ссылка на контрольную 19 | ===================== 20 | 21 | Ссылка на семестровую контрольную__. 22 | 23 | .. __: http://93.175.29.65/cgi-bin/new-register?contest_id=840215 24 | -------------------------------------------------------------------------------- /content-old/2018/lab8.rst: -------------------------------------------------------------------------------- 1 | Контрольная работа №1 2 | ##################### 3 | 4 | :date: 2018-10-23 09:00 5 | :summary: Контрольная на условия, циклы и массивы 6 | :status: published 7 | :test_link: http://judge2.vdi.mipt.ru/cgi-bin/new-register?contest_id=840108 8 | :test_comment: Ссылка на контест 9 | 10 | 11 | .. default-role:: code 12 | 13 | Ссылка на контрольную 14 | ===================== 15 | 16 | Выполните задания контрольной работы на языке С++: `ссылка на контест`__. 17 | 18 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-register?contest_id=840108 19 | -------------------------------------------------------------------------------- /content-old/2018/pages/authors.rst: -------------------------------------------------------------------------------- 1 | Авторы курса 2 | ################ 3 | 4 | :date: 2018-08-28 09:00 5 | 6 | Преподаватели курса 7 | ------------------- 8 | 9 | Максимов Егор 10 | Рязанов Василий 11 | Герцев Михаил -------------------------------------------------------------------------------- /content-old/2019/extra/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2019/extra/favicon.png -------------------------------------------------------------------------------- /content-old/2019/extra/lab22/ceasar.txt: -------------------------------------------------------------------------------- 1 | ZEXOIBP YXYYXDB TXP XK BKDIFPE MLIVJXQE. X JXQEBJXQFZFXK, MEFILPLMEBO, FKSBKQLO XKA JBZEXKFZXI BKDFKBBO, YXYYXDB LOFDFKXQBA QEB ZLKZBMQ LC X AFDFQXI MOLDOXJJXYIB ZLJMRQBO. 2 | 3 | ZLKPFABOBA YV PLJB QL YB X "CXQEBO LC QEB ZLJMRQBO", YXYYXDB FP ZOBAFQBA TFQE FKSBKQFKD QEB CFOPQ JBZEXKFZXI ZLJMRQBO QEXQ BSBKQRXIIV IBA QL JLOB ZLJMIBU BIBZQOLKFZ ABPFDKP, QELRDE XII QEB BPPBKQFXI FABXP LC JLABOK ZLJMRQBOP XOB QL YB CLRKA FK YXYYXDB'P XKXIVQFZXI BKDFKB. EFP SXOFBA TLOH FK LQEBO CFBIAP EXP IBA EFJ QL YB ABPZOFYBA XP "MOB-BJFKBKQ" XJLKD QEB JXKV MLIVJXQEP LC EFP ZBKQROV. 4 | 5 | MXOQP LC YXYYXDB'P FKZLJMIBQB JBZEXKFPJP XOB LK AFPMIXV FK QEB PZFBKZB JRPBRJ FK ILKALK. FK 1991, X CRKZQFLKFKD AFCCBOBKZB BKDFKB TXP ZLKPQORZQBA COLJ YXYYXDB'P LOFDFKXI MIXKP. YRFIQ QL QLIBOXKZBP XZEFBSXYIB FK QEB 19QE ZBKQROV, QEB PRZZBPP LC QEB CFKFPEBA BKDFKB FKAFZXQBA QEXQ YXYYXDB'P JXZEFKB TLRIA EXSB TLOHBA. 6 | -------------------------------------------------------------------------------- /content-old/2019/extra/lab22/matplotlib/raw_parabola.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2019/extra/lab22/matplotlib/raw_parabola.png -------------------------------------------------------------------------------- /content-old/2019/extra/lab22/matplotlib/two_plots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2019/extra/lab22/matplotlib/two_plots.png -------------------------------------------------------------------------------- /content-old/2019/extra/lab27/mst.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2019/extra/lab27/mst.zip -------------------------------------------------------------------------------- /content-old/2019/extra/lab29/games_theory.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2019/extra/lab29/games_theory.zip -------------------------------------------------------------------------------- /content-old/2019/images/lab1/broken_hdd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2019/images/lab1/broken_hdd.jpg -------------------------------------------------------------------------------- /content-old/2019/images/lab1/smoking_computer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2019/images/lab1/smoking_computer.jpg -------------------------------------------------------------------------------- /content-old/2019/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2019/images/logo.png -------------------------------------------------------------------------------- /content-old/2019/lab11.rst: -------------------------------------------------------------------------------- 1 | Бинарный поиск 2 | ############################################ 3 | 4 | :date: 2019-11-10 09:00 5 | :summary: Контест по бинарному поиску 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | 12 | Контест №9 13 | ========== 14 | Участвовать_ в контесте. 15 | 16 | .. _Участвовать: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=94110 17 | -------------------------------------------------------------------------------- /content-old/2019/lab12.rst: -------------------------------------------------------------------------------- 1 | Одномерное динамическое программирование 2 | ############################################# 3 | 4 | :date: 2019-11-17 09:00 5 | :summary: Контест по одномерному динамическому программированию 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | 12 | Контест №10 13 | =========== 14 | Участвовать_ в контесте. 15 | 16 | .. _Участвовать: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=94111 17 | -------------------------------------------------------------------------------- /content-old/2019/lab14.rst: -------------------------------------------------------------------------------- 1 | Двумерное динамическое программирование 2 | ############################################# 3 | 4 | :date: 2019-12-01 09:00 5 | :summary: Контест 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | 12 | Контест №12 13 | =========== 14 | Участвовать_ в контесте. 15 | 16 | .. _Участвовать: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=94113 17 | -------------------------------------------------------------------------------- /content-old/2019/lab15.rst: -------------------------------------------------------------------------------- 1 | Контрольная работа №2 2 | ############################################# 3 | 4 | :date: 2019-12-09 09:00 5 | :summary: Семестровая контрольная работа 6 | :status: published 7 | 8 | .. default-role:: code 9 | 10 | Расписание и ссылки 11 | ================================= 12 | 13 | .. Расписание появится. 14 | 15 | `14 декабря, суббота 17:05`__. 16 | 17 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=93121 -------------------------------------------------------------------------------- /content-old/2019/lab18.rst: -------------------------------------------------------------------------------- 1 | Хеширование и хеш-таблицы 2 | ################################## 3 | 4 | :date: 2020-02-18 09:00 5 | :summary: Ссылка на контест 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест №2 12 | ========== 13 | Участвовать_ в контесте. 14 | 15 | .. _Участвовать: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=94115 16 | -------------------------------------------------------------------------------- /content-old/2019/lab20.rst: -------------------------------------------------------------------------------- 1 | Геометрия 2 | ######### 3 | 4 | :date: 2020-03-03 09:00 5 | :summary: Ссылка на контест 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест №4 12 | ========== 13 | Участвовать_ в контесте. 14 | 15 | .. _Участвовать: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=94116 16 | -------------------------------------------------------------------------------- /content-old/2019/lab21.rst: -------------------------------------------------------------------------------- 1 | Стэк, очередь, куча 2 | ################### 3 | 4 | :date: 2020-03-10 09:00 5 | :summary: Ссылка на контест 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест №5 12 | ========== 13 | Участвовать_ в контесте. 14 | 15 | .. _Участвовать: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=94117 16 | -------------------------------------------------------------------------------- /content-old/2019/lab23.rst: -------------------------------------------------------------------------------- 1 | Контрольная работа №1 2 | ##################### 3 | 4 | :date: 2020-03-24 09:00 5 | :summary: Контрольная работа по пройденным темам 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест - Контрольная №1 12 | ======================== 13 | 14 | Участвовать в контесте_. 15 | Контрольная длится 3 часа. 16 | Начало 27 марта 12:20 (пятница), конец 27 марта 15:20. 17 | 18 | .. _контесте: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=94118 19 | 20 | Лекционный материал 21 | =================== 22 | 23 | `Лекция №8`_ 24 | 25 | .. _`Лекция №8`: https://youtu.be/sBJ7ana1fgI 26 | 27 | Тема лекции: Обход графа в глубину. Выделение компонент связности (обходом в глубину). 28 | Выделение компонент сильной связности орграфа (алгоритм Косарайю). 29 | Проверка двудольности графа. Проверка графа на ацикличность и нахождение цикла. 30 | Топологическая сортировка. 31 | -------------------------------------------------------------------------------- /content-old/2019/lab27.rst: -------------------------------------------------------------------------------- 1 | Лекция по остовным деревьям 2 | ########################### 3 | 4 | :date: 2020-04-20 09:00 5 | :summary: Лекция 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест 12 | ======= 13 | 14 | На этой неделе нового контеста нет. Дорешивайте то, что есть. 15 | 16 | Дедлайны по контестам: 17 | 18 | + 94120 - BFS - 27 апреля 9:00 (понедельник) 19 | + 94121 - Мин. пути - 4 мая 9:00 (понедельник) 20 | 21 | Лекционный материал 22 | =================== 23 | 24 | Лекция на этой неделе: `Лекция №11`_ 25 | 26 | .. _`Лекция №11`: https://drive.google.com/file/d/1lYyL698SGawabfgjDsJR6KJihvmdopMx/view?usp=sharing 27 | 28 | Тема лекции: Остовные деревья. Алгоритм Прима. Алгоритм Краскала. Исходный код из видео: `mst.zip`_. 29 | 30 | .. _`mst.zip`: {static}/extra/lab27/mst.zip 31 | 32 | Текстовый материал по лекции появится ближе к вечеру воскресенья. 33 | -------------------------------------------------------------------------------- /content-old/2019/lab28.rst: -------------------------------------------------------------------------------- 1 | Графы. Остовные деревья 2 | ########################### 3 | 4 | :date: 2020-04-27 09:00 5 | :summary: контест 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест 12 | ======= 13 | 14 | Участвовать в контесте_. 15 | 16 | .. _контесте: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=94122 17 | -------------------------------------------------------------------------------- /content-old/2019/lab29.rst: -------------------------------------------------------------------------------- 1 | Лекция по теории игр 2 | #################### 3 | 4 | :date: 2020-05-04 09:00 5 | :summary: Лекция 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест 12 | ======= 13 | 14 | На этой неделе нового контеста нет. Дорешивайте то, что есть. 15 | 16 | Лекционный материал 17 | =================== 18 | 19 | Лекция на этой неделе: `Лекция №12`_ 20 | 21 | .. _`Лекция №12`: https://drive.google.com/file/d/1uuZOqAA3v15B0MpMsxX-AeLlXWop4cxq/view?usp=sharing 22 | 23 | Тема лекции: Игры на ациклических графах. Игра «Ним». Сумма игр. Функция Шпрага-Гранди. Игры на 24 | произвольных графах. Исходный код из видео: `games_theory.zip`_. 25 | 26 | .. _`games_theory.zip`: {static}/extra/lab29/games_theory.zip 27 | 28 | Текстовый материал по лекции и список вопросов на зачет появятся после майских праздников. 29 | -------------------------------------------------------------------------------- /content-old/2019/lab3.rst: -------------------------------------------------------------------------------- 1 | Обработка последовательностей чисел 2 | ################################### 3 | 4 | :date: 2019-09-09 09:00 5 | :summary: Суммирование последовательности, поиск среднего, максимального и т.д. 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест №2 12 | ========== 13 | 14 | Участвовать_ в контесте. 15 | 16 | .. _Участвовать: http://judge2.vdi.mipt.ru/cgi-bin/new-register?contest_id=094103 17 | 18 | 19 | -------------------------------------------------------------------------------- /content-old/2019/lab5.rst: -------------------------------------------------------------------------------- 1 | Алгоритмы полного перебора 2 | ############################################ 3 | 4 | :date: 2019-09-30 09:00 5 | :summary: Алгоритмы полного перебора. Тест простоты. Факторизация. Перебор делителей. 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест №4 12 | ========== 13 | 14 | Участвовать_ в контесте. 15 | 16 | .. _Участвовать: http://judge2.vdi.mipt.ru/cgi-bin/new-register?contest_id=094105 17 | 18 | 19 | -------------------------------------------------------------------------------- /content-old/2019/lab7.rst: -------------------------------------------------------------------------------- 1 | Контрольная работа №1 2 | ############################################ 3 | 4 | :date: 2019-10-14 09:00 5 | :summary: Контрольная работа по пройденным темам 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | ========== 12 | 13 | `Среда 15:30`__. 14 | 15 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-register?contest_id=093103 16 | 17 | `Среда 17:05`__. 18 | 19 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-register?contest_id=093104 20 | 21 | `Четверг 13:55`__. 22 | 23 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-register?contest_id=093107 24 | 25 | `Четверг 15:30`__. 26 | 27 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-register?contest_id=093108 28 | 29 | `Пятница 12:20`__. 30 | 31 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-register?contest_id=093109 32 | 33 | `Пятница 15:30`__. 34 | 35 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-register?contest_id=093110 36 | 37 | -------------------------------------------------------------------------------- /content-old/2020/extra/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2020/extra/favicon.png -------------------------------------------------------------------------------- /content-old/2020/extra/lab22/ceasar.txt: -------------------------------------------------------------------------------- 1 | ZEXOIBP YXYYXDB TXP XK BKDIFPE MLIVJXQE. X JXQEBJXQFZFXK, MEFILPLMEBO, FKSBKQLO XKA JBZEXKFZXI BKDFKBBO, YXYYXDB LOFDFKXQBA QEB ZLKZBMQ LC X AFDFQXI MOLDOXJJXYIB ZLJMRQBO. 2 | 3 | ZLKPFABOBA YV PLJB QL YB X "CXQEBO LC QEB ZLJMRQBO", YXYYXDB FP ZOBAFQBA TFQE FKSBKQFKD QEB CFOPQ JBZEXKFZXI ZLJMRQBO QEXQ BSBKQRXIIV IBA QL JLOB ZLJMIBU BIBZQOLKFZ ABPFDKP, QELRDE XII QEB BPPBKQFXI FABXP LC JLABOK ZLJMRQBOP XOB QL YB CLRKA FK YXYYXDB'P XKXIVQFZXI BKDFKB. EFP SXOFBA TLOH FK LQEBO CFBIAP EXP IBA EFJ QL YB ABPZOFYBA XP "MOB-BJFKBKQ" XJLKD QEB JXKV MLIVJXQEP LC EFP ZBKQROV. 4 | 5 | MXOQP LC YXYYXDB'P FKZLJMIBQB JBZEXKFPJP XOB LK AFPMIXV FK QEB PZFBKZB JRPBRJ FK ILKALK. FK 1991, X CRKZQFLKFKD AFCCBOBKZB BKDFKB TXP ZLKPQORZQBA COLJ YXYYXDB'P LOFDFKXI MIXKP. YRFIQ QL QLIBOXKZBP XZEFBSXYIB FK QEB 19QE ZBKQROV, QEB PRZZBPP LC QEB CFKFPEBA BKDFKB FKAFZXQBA QEXQ YXYYXDB'P JXZEFKB TLRIA EXSB TLOHBA. 6 | -------------------------------------------------------------------------------- /content-old/2020/extra/lab22/matplotlib/raw_parabola.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2020/extra/lab22/matplotlib/raw_parabola.png -------------------------------------------------------------------------------- /content-old/2020/extra/lab22/matplotlib/two_plots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2020/extra/lab22/matplotlib/two_plots.png -------------------------------------------------------------------------------- /content-old/2020/extra/lab27/mst.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2020/extra/lab27/mst.zip -------------------------------------------------------------------------------- /content-old/2020/extra/lab29/games_theory.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2020/extra/lab29/games_theory.zip -------------------------------------------------------------------------------- /content-old/2020/images/lab1/broken_hdd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2020/images/lab1/broken_hdd.jpg -------------------------------------------------------------------------------- /content-old/2020/images/lab1/smoking_computer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2020/images/lab1/smoking_computer.jpg -------------------------------------------------------------------------------- /content-old/2020/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content-old/2020/images/logo.png -------------------------------------------------------------------------------- /content-old/2020/lab11.rst: -------------------------------------------------------------------------------- 1 | Бинарный поиск 2 | ############################################ 3 | 4 | :date: 2019-11-10 09:00 5 | :summary: Контест по бинарному поиску 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | 12 | Контест №9 13 | ========== 14 | Участвовать_ в контесте. 15 | 16 | .. _Участвовать: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=94110 17 | -------------------------------------------------------------------------------- /content-old/2020/lab12.rst: -------------------------------------------------------------------------------- 1 | Одномерное динамическое программирование 2 | ############################################# 3 | 4 | :date: 2019-11-17 09:00 5 | :summary: Контест по одномерному динамическому программированию 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | 12 | Контест №10 13 | =========== 14 | Участвовать_ в контесте. 15 | 16 | .. _Участвовать: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=94111 17 | -------------------------------------------------------------------------------- /content-old/2020/lab14.rst: -------------------------------------------------------------------------------- 1 | Двумерное динамическое программирование 2 | ############################################# 3 | 4 | :date: 2019-12-01 09:00 5 | :summary: Контест 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | 12 | Контест №12 13 | =========== 14 | Участвовать_ в контесте. 15 | 16 | .. _Участвовать: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=94113 17 | -------------------------------------------------------------------------------- /content-old/2020/lab15.rst: -------------------------------------------------------------------------------- 1 | Контрольная работа №2 2 | ############################################# 3 | 4 | :date: 2019-12-09 09:00 5 | :summary: Семестровая контрольная работа 6 | :status: published 7 | 8 | .. default-role:: code 9 | 10 | Расписание и ссылки 11 | ================================= 12 | 13 | .. Расписание появится. 14 | 15 | `14 декабря, суббота 17:05`__. 16 | 17 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=93121 -------------------------------------------------------------------------------- /content-old/2020/lab18.rst: -------------------------------------------------------------------------------- 1 | Хеширование и хеш-таблицы 2 | ################################## 3 | 4 | :date: 2020-02-18 09:00 5 | :summary: Ссылка на контест 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест №2 12 | ========== 13 | Участвовать_ в контесте. 14 | 15 | .. _Участвовать: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=94115 16 | -------------------------------------------------------------------------------- /content-old/2020/lab20.rst: -------------------------------------------------------------------------------- 1 | Геометрия 2 | ######### 3 | 4 | :date: 2020-03-03 09:00 5 | :summary: Ссылка на контест 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест №4 12 | ========== 13 | Участвовать_ в контесте. 14 | 15 | .. _Участвовать: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=94116 16 | -------------------------------------------------------------------------------- /content-old/2020/lab21.rst: -------------------------------------------------------------------------------- 1 | Стэк, очередь, куча 2 | ################### 3 | 4 | :date: 2020-03-10 09:00 5 | :summary: Ссылка на контест 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест №5 12 | ========== 13 | Участвовать_ в контесте. 14 | 15 | .. _Участвовать: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=94117 16 | -------------------------------------------------------------------------------- /content-old/2020/lab23.rst: -------------------------------------------------------------------------------- 1 | Контрольная работа №1 2 | ##################### 3 | 4 | :date: 2020-03-24 09:00 5 | :summary: Контрольная работа по пройденным темам 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест - Контрольная №1 12 | ======================== 13 | 14 | Участвовать в контесте_. 15 | Контрольная длится 3 часа. 16 | Начало 27 марта 12:20 (пятница), конец 27 марта 15:20. 17 | 18 | .. _контесте: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=94118 19 | 20 | Лекционный материал 21 | =================== 22 | 23 | `Лекция №8`_ 24 | 25 | .. _`Лекция №8`: https://youtu.be/sBJ7ana1fgI 26 | 27 | Тема лекции: Обход графа в глубину. Выделение компонент связности (обходом в глубину). 28 | Выделение компонент сильной связности орграфа (алгоритм Косарайю). 29 | Проверка двудольности графа. Проверка графа на ацикличность и нахождение цикла. 30 | Топологическая сортировка. 31 | -------------------------------------------------------------------------------- /content-old/2020/lab27.rst: -------------------------------------------------------------------------------- 1 | Лекция по остовным деревьям 2 | ########################### 3 | 4 | :date: 2020-04-20 09:00 5 | :summary: Лекция 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест 12 | ======= 13 | 14 | На этой неделе нового контеста нет. Дорешивайте то, что есть. 15 | 16 | Дедлайны по контестам: 17 | 18 | + 94120 - BFS - 27 апреля 9:00 (понедельник) 19 | + 94121 - Мин. пути - 4 мая 9:00 (понедельник) 20 | 21 | Лекционный материал 22 | =================== 23 | 24 | Лекция на этой неделе: `Лекция №11`_ 25 | 26 | .. _`Лекция №11`: https://drive.google.com/file/d/1lYyL698SGawabfgjDsJR6KJihvmdopMx/view?usp=sharing 27 | 28 | Тема лекции: Остовные деревья. Алгоритм Прима. Алгоритм Краскала. Исходный код из видео: `mst.zip`_. 29 | 30 | .. _`mst.zip`: {static}/extra/lab27/mst.zip 31 | 32 | Текстовый материал по лекции появится ближе к вечеру воскресенья. 33 | -------------------------------------------------------------------------------- /content-old/2020/lab28.rst: -------------------------------------------------------------------------------- 1 | Графы. Остовные деревья 2 | ########################### 3 | 4 | :date: 2020-04-27 09:00 5 | :summary: контест 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест 12 | ======= 13 | 14 | Участвовать в контесте_. 15 | 16 | .. _контесте: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=94122 17 | -------------------------------------------------------------------------------- /content-old/2020/lab29.rst: -------------------------------------------------------------------------------- 1 | Лекция по теории игр 2 | #################### 3 | 4 | :date: 2020-05-04 09:00 5 | :summary: Лекция 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест 12 | ======= 13 | 14 | На этой неделе нового контеста нет. Дорешивайте то, что есть. 15 | 16 | Лекционный материал 17 | =================== 18 | 19 | Лекция на этой неделе: `Лекция №12`_ 20 | 21 | .. _`Лекция №12`: https://drive.google.com/file/d/1uuZOqAA3v15B0MpMsxX-AeLlXWop4cxq/view?usp=sharing 22 | 23 | Тема лекции: Игры на ациклических графах. Игра «Ним». Сумма игр. Функция Шпрага-Гранди. Игры на 24 | произвольных графах. Исходный код из видео: `games_theory.zip`_. 25 | 26 | .. _`games_theory.zip`: {static}/extra/lab29/games_theory.zip 27 | 28 | Текстовый материал по лекции и список вопросов на зачет появятся после майских праздников. 29 | -------------------------------------------------------------------------------- /content-old/2020/lab3.rst: -------------------------------------------------------------------------------- 1 | Обработка последовательностей чисел 2 | ################################### 3 | 4 | :date: 2019-09-09 09:00 5 | :summary: Суммирование последовательности, поиск среднего, максимального и т.д. 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест №2 12 | ========== 13 | 14 | Участвовать_ в контесте. 15 | 16 | .. _Участвовать: http://judge2.vdi.mipt.ru/cgi-bin/new-register?contest_id=094103 17 | 18 | 19 | -------------------------------------------------------------------------------- /content-old/2020/lab5.rst: -------------------------------------------------------------------------------- 1 | Алгоритмы полного перебора 2 | ############################################ 3 | 4 | :date: 2019-09-30 09:00 5 | :summary: Алгоритмы полного перебора. Тест простоты. Факторизация. Перебор делителей. 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест №4 12 | ========== 13 | 14 | Участвовать_ в контесте. 15 | 16 | .. _Участвовать: http://judge2.vdi.mipt.ru/cgi-bin/new-register?contest_id=094105 17 | 18 | 19 | -------------------------------------------------------------------------------- /content-old/2020/lab7.rst: -------------------------------------------------------------------------------- 1 | Контрольная работа №1 2 | ############################################ 3 | 4 | :date: 2019-10-14 09:00 5 | :summary: Контрольная работа по пройденным темам 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | ========== 12 | 13 | `Среда 15:30`__. 14 | 15 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-register?contest_id=093103 16 | 17 | `Среда 17:05`__. 18 | 19 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-register?contest_id=093104 20 | 21 | `Четверг 13:55`__. 22 | 23 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-register?contest_id=093107 24 | 25 | `Четверг 15:30`__. 26 | 27 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-register?contest_id=093108 28 | 29 | `Пятница 12:20`__. 30 | 31 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-register?contest_id=093109 32 | 33 | `Пятница 15:30`__. 34 | 35 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-register?contest_id=093110 36 | 37 | -------------------------------------------------------------------------------- /content-old/2020/pages/authors.rst: -------------------------------------------------------------------------------- 1 | Авторы курса 2 | ################ 3 | 4 | :date: 2018-08-28 09:00 5 | 6 | Преподаватели курса 7 | ------------------- 8 | 9 | Максимов Егор 10 | Рязанов Василий 11 | Герцев Михаил -------------------------------------------------------------------------------- /content/extra/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content/extra/favicon.png -------------------------------------------------------------------------------- /content/extra/lab22/ceasar.txt: -------------------------------------------------------------------------------- 1 | ZEXOIBP YXYYXDB TXP XK BKDIFPE MLIVJXQE. X JXQEBJXQFZFXK, MEFILPLMEBO, FKSBKQLO XKA JBZEXKFZXI BKDFKBBO, YXYYXDB LOFDFKXQBA QEB ZLKZBMQ LC X AFDFQXI MOLDOXJJXYIB ZLJMRQBO. 2 | 3 | ZLKPFABOBA YV PLJB QL YB X "CXQEBO LC QEB ZLJMRQBO", YXYYXDB FP ZOBAFQBA TFQE FKSBKQFKD QEB CFOPQ JBZEXKFZXI ZLJMRQBO QEXQ BSBKQRXIIV IBA QL JLOB ZLJMIBU BIBZQOLKFZ ABPFDKP, QELRDE XII QEB BPPBKQFXI FABXP LC JLABOK ZLJMRQBOP XOB QL YB CLRKA FK YXYYXDB'P XKXIVQFZXI BKDFKB. EFP SXOFBA TLOH FK LQEBO CFBIAP EXP IBA EFJ QL YB ABPZOFYBA XP "MOB-BJFKBKQ" XJLKD QEB JXKV MLIVJXQEP LC EFP ZBKQROV. 4 | 5 | MXOQP LC YXYYXDB'P FKZLJMIBQB JBZEXKFPJP XOB LK AFPMIXV FK QEB PZFBKZB JRPBRJ FK ILKALK. FK 1991, X CRKZQFLKFKD AFCCBOBKZB BKDFKB TXP ZLKPQORZQBA COLJ YXYYXDB'P LOFDFKXI MIXKP. YRFIQ QL QLIBOXKZBP XZEFBSXYIB FK QEB 19QE ZBKQROV, QEB PRZZBPP LC QEB CFKFPEBA BKDFKB FKAFZXQBA QEXQ YXYYXDB'P JXZEFKB TLRIA EXSB TLOHBA. 6 | -------------------------------------------------------------------------------- /content/extra/lab22/matplotlib/raw_parabola.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content/extra/lab22/matplotlib/raw_parabola.png -------------------------------------------------------------------------------- /content/extra/lab22/matplotlib/two_plots.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content/extra/lab22/matplotlib/two_plots.png -------------------------------------------------------------------------------- /content/extra/lab27/mst.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content/extra/lab27/mst.zip -------------------------------------------------------------------------------- /content/extra/lab29/games_theory.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content/extra/lab29/games_theory.zip -------------------------------------------------------------------------------- /content/images/lab1/broken_hdd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content/images/lab1/broken_hdd.jpg -------------------------------------------------------------------------------- /content/images/lab1/smoking_computer.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content/images/lab1/smoking_computer.jpg -------------------------------------------------------------------------------- /content/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/content/images/logo.png -------------------------------------------------------------------------------- /content/lab11.rst: -------------------------------------------------------------------------------- 1 | Бинарный поиск 2 | ############################################ 3 | 4 | :date: 2021-11-10 09:00 5 | :summary: Контест по бинарному поиску 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | 12 | Контест №9 13 | ========== 14 | Участвовать_ в контесте. 15 | 16 | .. _Участвовать: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=94110 17 | -------------------------------------------------------------------------------- /content/lab12.rst: -------------------------------------------------------------------------------- 1 | Одномерное динамическое программирование 2 | ############################################# 3 | 4 | :date: 2021-11-17 09:00 5 | :summary: Контест по одномерному динамическому программированию 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | 12 | Контест №10 13 | =========== 14 | Участвовать_ в контесте. 15 | 16 | .. _Участвовать: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=94111 17 | -------------------------------------------------------------------------------- /content/lab14.rst: -------------------------------------------------------------------------------- 1 | Двумерное динамическое программирование 2 | ############################################# 3 | 4 | :date: 2021-12-01 09:00 5 | :summary: Контест 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | 12 | Контест №12 13 | =========== 14 | Участвовать_ в контесте. 15 | 16 | .. _Участвовать: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=94113 17 | -------------------------------------------------------------------------------- /content/lab15.rst: -------------------------------------------------------------------------------- 1 | Контрольная работа №2 2 | ############################################# 3 | 4 | :date: 2021-12-08 09:00 5 | :summary: Семестровая контрольная работа 6 | :status: published 7 | 8 | .. default-role:: code 9 | 10 | Расписание и ссылки 11 | ================================= 12 | 13 | .. Расписание появится. 14 | 15 | 16 | 17 | `8 декабря, среда 10:45`__. 18 | 19 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=93113 20 | 21 | `8 декабря, среда 13:55`__. 22 | 23 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=93114 24 | 25 | `11 декабря, суббота 09:00`__. 26 | 27 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=93115 28 | 29 | `11 декабря, суббота 17:05`__. 30 | 31 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=93116 32 | 33 | `13 декабря, понедельник 15:30`__. 34 | 35 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=93117 36 | 37 | `14 декабря, вторник 9:00`__. 38 | 39 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=93118 40 | -------------------------------------------------------------------------------- /content/lab18.rst: -------------------------------------------------------------------------------- 1 | Геометрия 2 | ######### 3 | 4 | :date: 2022-02-08 09:00 5 | :summary: Ссылка на контест 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест №4 12 | ========== 13 | Участвовать_ в контесте. 14 | 15 | .. _Участвовать: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=94116 16 | -------------------------------------------------------------------------------- /content/lab19.rst: -------------------------------------------------------------------------------- 1 | Хеширование и хеш-таблицы 2 | ################################## 3 | 4 | :date: 2022-02-15 09:00 5 | :summary: Ссылка на контест 6 | :status: published 7 | 8 | 9 | .. default-role:: code 10 | .. contents:: Содержание 11 | 12 | Контест №2 13 | ========== 14 | Участвовать_ в контесте. 15 | 16 | .. _Участвовать: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=94115 17 | -------------------------------------------------------------------------------- /content/lab21.rst: -------------------------------------------------------------------------------- 1 | Стэк, очередь, куча 2 | ################### 3 | 4 | :date: 2022-02-28 09:00 5 | :summary: Ссылка на контест 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест №5 12 | ========== 13 | Участвовать_ в контесте. 14 | 15 | .. _Участвовать: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=94117 16 | -------------------------------------------------------------------------------- /content/lab23.rst: -------------------------------------------------------------------------------- 1 | Контрольная работа №1 2 | ##################### 3 | 4 | :date: 2022-03-15 09:00 5 | :summary: Контрольная работа по пройденным темам 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест - Контрольная №1 12 | ======================== 13 | 14 | .. Вторник 9:00 – 12:20 `Б06-003, Б06-005`__. 15 | 16 | .. .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=203301 17 | 18 | .. Пятница 17:00 – 20:00 `Б03-107`__. 19 | 20 | .. .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=203302 21 | 22 | .. Среда 15:30 – 18:30 `Б06-004`__. 23 | 24 | .. .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=203303 25 | 26 | .. Суббота 09:00 – 12:20 `Б06-008, Б06-001, Б06-009`__. 27 | 28 | .. .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=203304 29 | 30 | .. Суббота 10:45 – 13:45 `Б06-007, Б06-002`__. 31 | 32 | .. .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=203305 33 | 34 | .. Суббота 17:00 – 20:00 `Б06-006`__. 35 | 36 | .. .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=203306 37 | -------------------------------------------------------------------------------- /content/lab24.rst: -------------------------------------------------------------------------------- 1 | Графы. Обход в глубину 2 | ###################### 3 | 4 | :date: 2022-03-22 09:00 5 | :summary: Контест по обходу графа в глубину 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест 12 | ======= 13 | 14 | Участвовать в контесте_. 15 | 16 | .. _контесте: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=94119 17 | 18 | -------------------------------------------------------------------------------- /content/lab25.rst: -------------------------------------------------------------------------------- 1 | Графы. Обход в ширину 2 | ###################### 3 | 4 | :date: 2022-03-29 09:00 5 | :summary: Контест, лекция 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест 12 | ======= 13 | 14 | Участвовать в контесте_. 15 | 16 | .. _контесте: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=94120 17 | 18 | -------------------------------------------------------------------------------- /content/lab26.rst: -------------------------------------------------------------------------------- 1 | Графы. Поиск кратчайшего пути 2 | ############################# 3 | 4 | :date: 2022-04-05 09:00 5 | :summary: Контест, лекция 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест 12 | ======= 13 | 14 | Участвовать в контесте_. 15 | 16 | .. _контесте: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=94121 17 | 18 | -------------------------------------------------------------------------------- /content/lab27.rst: -------------------------------------------------------------------------------- 1 | Лекция по остовным деревьям 2 | ########################### 3 | 4 | :date: 2022-04-12 09:00 5 | :summary: Лекция 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест 12 | ======= 13 | 14 | На этой неделе нового контеста нет. Дорешивайте то, что есть. 15 | 16 | -------------------------------------------------------------------------------- /content/lab28.rst: -------------------------------------------------------------------------------- 1 | Графы. Остовные деревья 2 | ########################### 3 | 4 | :date: 2022-04-19 09:00 5 | :summary: контест 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест 12 | ======= 13 | 14 | Участвовать в контесте_. 15 | 16 | .. _контесте: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=94122 17 | -------------------------------------------------------------------------------- /content/lab29.rst: -------------------------------------------------------------------------------- 1 | Лекция по теории игр 2 | #################### 3 | 4 | :date: 2022-04-26 09:00 5 | :summary: Лекция 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест 12 | ======= 13 | 14 | На этой неделе нового контеста нет. Дорешивайте то, что есть. 15 | 16 | .. Лекционный материал 17 | .. =================== 18 | 19 | .. Лекция на этой неделе: `Лекция №12`_ 20 | 21 | .. .. _`Лекция №12`: https://drive.google.com/file/d/1uuZOqAA3v15B0MpMsxX-AeLlXWop4cxq/view?usp=sharing 22 | 23 | .. Тема лекции: Игры на ациклических графах. Игра «Ним». Сумма игр. Функция Шпрага-Гранди. Игры на 24 | .. произвольных графах. Исходный код из видео: `games_theory.zip`_. 25 | 26 | .. .. _`games_theory.zip`: {static}/extra/lab29/games_theory.zip 27 | 28 | .. Текстовый материал по лекции и список вопросов на зачет появятся после майских праздников. 29 | -------------------------------------------------------------------------------- /content/lab3.rst: -------------------------------------------------------------------------------- 1 | Обработка последовательностей чисел 2 | ################################### 3 | 4 | :date: 2021-09-09 09:00 5 | :summary: Суммирование последовательности, поиск среднего, максимального и т.д. 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест №2 12 | ========== 13 | 14 | Участвовать_ в контесте. 15 | 16 | .. _Участвовать: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=094103 17 | 18 | 19 | -------------------------------------------------------------------------------- /content/lab5.rst: -------------------------------------------------------------------------------- 1 | Алгоритмы полного перебора 2 | ############################################ 3 | 4 | :date: 2021-09-30 09:00 5 | :summary: Алгоритмы полного перебора. Тест простоты. Факторизация. Перебор делителей. 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | Контест №4 12 | ========== 13 | 14 | Участвовать_ в контесте. 15 | 16 | .. _Участвовать: http://judge2.vdi.mipt.ru/cgi-bin/new-register?contest_id=094105 17 | 18 | 19 | -------------------------------------------------------------------------------- /content/lab7.rst: -------------------------------------------------------------------------------- 1 | Контрольная работа №1 2 | ############################################ 3 | 4 | :date: 2021-10-13 09:00 5 | :summary: Контрольная работа по пройденным темам 6 | :status: published 7 | 8 | .. default-role:: code 9 | .. contents:: Содержание 10 | 11 | ========== 12 | 13 | **Логин и пароль для участия в контрольной можно взять у преподавателя** 14 | 15 | 16 | .. `ФАКИ САУ`__. 17 | 18 | .. .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-register?contest_id=203101 19 | 20 | 21 | ФМБФ 22 | ==== 23 | 24 | `Б06-004`__. 25 | 26 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=93100 27 | 28 | 29 | `Б06-001`__. 30 | 31 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=93101 32 | 33 | 34 | `Б06-002, Б06-003, Б06-005, Б06-006, Б06-009`__. 35 | 36 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=93102 37 | 38 | 39 | `Б06-007`__. 40 | 41 | .. __: http://judge2.vdi.mipt.ru/cgi-bin/new-client?contest_id=93103 42 | -------------------------------------------------------------------------------- /content/pages/authors.rst: -------------------------------------------------------------------------------- 1 | Авторы курса 2 | ################ 3 | 4 | :date: 2018-08-28 09:00 5 | 6 | Преподаватели курса 7 | ------------------- 8 | 9 | Максимов Егор 10 | Рязанов Василий 11 | Герцев Михаил -------------------------------------------------------------------------------- /plugins/.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | ._* 3 | .*.swp 4 | .*.swo 5 | *.pyc 6 | *.log 7 | .DS_Store 8 | .directory 9 | .idea 10 | .project 11 | .pydevproject 12 | -------------------------------------------------------------------------------- /plugins/.travis.yml: -------------------------------------------------------------------------------- 1 | language: python 2 | python: 3 | - "2.7" 4 | - "3.2" 5 | before_install: 6 | - sudo apt-get update -qq 7 | - sudo apt-get install -qq --no-install-recommends ruby-sass 8 | install: 9 | - pip install nose 10 | - pip install -e git://github.com/getpelican/pelican.git#egg=pelican 11 | - pip install --use-mirrors Markdown 12 | - if [[ $TRAVIS_PYTHON_VERSION == '2.7' ]]; then pip install --use-mirrors webassets cssmin; fi 13 | script: nosetests 14 | -------------------------------------------------------------------------------- /plugins/always_modified/README.md: -------------------------------------------------------------------------------- 1 | # Always Modified 2 | 3 | Say you want to sort by modified date/time in a theme template, but not all 4 | your articles have modified date/timestamps explicitly defined in article 5 | metadata. This plugin facilitates that sorting by assuming the modified date 6 | (if undefined) is equal to the created date. 7 | 8 | ## Usage 9 | 10 | 1. Add `ALWAYS_MODIFIED = True` to your settings file. 11 | 2. Now you can sort by modified date in your templates: 12 | 13 | {% for article in articles|sort(reverse=True,attribute='modified') %} 14 | 15 | -------------------------------------------------------------------------------- /plugins/always_modified/__init__.py: -------------------------------------------------------------------------------- 1 | from .always_modified import * 2 | -------------------------------------------------------------------------------- /plugins/always_modified/always_modified.py: -------------------------------------------------------------------------------- 1 | """ 2 | If "modified" date/time is not defined in article metadata, fall back to the "created" date. 3 | """ 4 | 5 | from pelican import signals 6 | from pelican.contents import Content, Article 7 | 8 | def add_modified(content): 9 | if not isinstance(content, Article): 10 | return 11 | 12 | if not content.settings.get('ALWAYS_MODIFIED', False): 13 | return 14 | 15 | if hasattr(content, 'date') and not hasattr(content, 'modified'): 16 | content.modified = content.date 17 | content.locale_modified = content.locale_date 18 | 19 | def register(): 20 | signals.content_object_init.connect(add_modified) 21 | -------------------------------------------------------------------------------- /plugins/asciidoc_reader/__init__.py: -------------------------------------------------------------------------------- 1 | from .asciidoc_reader import * 2 | -------------------------------------------------------------------------------- /plugins/asciidoc_reader/test_data/article_with_asc_extension.asc: -------------------------------------------------------------------------------- 1 | Test AsciiDoc File Header 2 | ========================= 3 | :Author: Author O. Article 4 | :Email: 5 | :Date: 2011-09-15 09:05 6 | :Category: Blog 7 | :Tags: Linux, Python, Pelican 8 | 9 | Used for pelican test 10 | --------------------- 11 | 12 | The quick brown fox jumped over the lazy dog's back. 13 | -------------------------------------------------------------------------------- /plugins/asciidoc_reader/test_data/article_with_asc_options.asc: -------------------------------------------------------------------------------- 1 | Test AsciiDoc File Header 2 | ========================= 3 | 4 | Used for pelican test 5 | --------------------- 6 | 7 | version {revision} 8 | 9 | The quick brown fox jumped over the lazy dog's back. 10 | -------------------------------------------------------------------------------- /plugins/assets/__init__.py: -------------------------------------------------------------------------------- 1 | from .assets import * 2 | -------------------------------------------------------------------------------- /plugins/assets/test_data/static/css/style.min.css: -------------------------------------------------------------------------------- 1 | body{font:14px/1.5 "Droid Sans",sans-serif;background-color:#e4e4e4;color:#242424}a{color:red}a:hover{color:orange} -------------------------------------------------------------------------------- /plugins/assets/test_data/static/css/style.scss: -------------------------------------------------------------------------------- 1 | /* -*- scss-compile-at-save: nil -*- */ 2 | 3 | $baseFontFamily : "Droid Sans", sans-serif; 4 | $textColor : #242424; 5 | $bodyBackground : #e4e4e4; 6 | 7 | body { 8 | font: 14px/1.5 $baseFontFamily; 9 | background-color: $bodyBackground; 10 | color: $textColor; 11 | } 12 | 13 | a { 14 | color: red; 15 | 16 | &:hover { 17 | color: orange; 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /plugins/assets/test_data/templates/base.html: -------------------------------------------------------------------------------- 1 | {% extends "!simple/base.html" %} 2 | 3 | {% block head %} 4 | {% assets filters="scss,cssmin", output="gen/style.%(version)s.min.css", "css/style.scss" %} 5 | 6 | {% endassets %} 7 | {% endblock %} 8 | -------------------------------------------------------------------------------- /plugins/author_images/__init__.py: -------------------------------------------------------------------------------- 1 | from .author_images import * 2 | -------------------------------------------------------------------------------- /plugins/author_images/generate_hashsum.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python2 2 | 3 | from __future__ import print_function 4 | import hashlib 5 | import sys 6 | 7 | print(hashlib.sha256(sys.argv[1]).hexdigest()) 8 | -------------------------------------------------------------------------------- /plugins/autopages/__init__.py: -------------------------------------------------------------------------------- 1 | from .autopages import * 2 | -------------------------------------------------------------------------------- /plugins/better_codeblock_line_numbering/__init__.py: -------------------------------------------------------------------------------- 1 | from .better_codeblock_line_numbering import * 2 | -------------------------------------------------------------------------------- /plugins/better_figures_and_images/__init__.py: -------------------------------------------------------------------------------- 1 | from .better_figures_and_images import * 2 | -------------------------------------------------------------------------------- /plugins/better_figures_and_images/test_data/dummy-200x200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/better_figures_and_images/test_data/dummy-200x200.png -------------------------------------------------------------------------------- /plugins/better_figures_and_images/test_data/dummy-250x300.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/better_figures_and_images/test_data/dummy-250x300.png -------------------------------------------------------------------------------- /plugins/better_figures_and_images/test_data/dummy-800x300.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/better_figures_and_images/test_data/dummy-800x300.png -------------------------------------------------------------------------------- /plugins/better_tables/LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2015 Alex Waite 2 | Permission is hereby granted, free of charge, to any person obtaining a copy 3 | of this software and associated documentation files (the "Software"), to deal 4 | in the Software without restriction, including without limitation the rights 5 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 6 | copies of the Software, and to permit persons to whom the Software is 7 | furnished to do so, subject to the following conditions: 8 | 9 | The above copyright notice and this permission notice shall be included in 10 | all copies or substantial portions of the Software. 11 | 12 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY 14 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 15 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 16 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 17 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 18 | SOFTWARE. 19 | -------------------------------------------------------------------------------- /plugins/bootstrap-rst/140x140.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/bootstrap-rst/140x140.png -------------------------------------------------------------------------------- /plugins/bootstrap-rst/171x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/bootstrap-rst/171x180.png -------------------------------------------------------------------------------- /plugins/bootstrap-rst/300x200.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/bootstrap-rst/300x200.png -------------------------------------------------------------------------------- /plugins/bootstrap-rst/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Nicolas P. Rougier 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in 13 | all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN 21 | THE SOFTWARE. 22 | -------------------------------------------------------------------------------- /plugins/bootstrap-rst/Makefile: -------------------------------------------------------------------------------- 1 | MAKE = /usr/bin/make 2 | RST2HTML = ./bootstrap.py 3 | STYLESHEET = 4 | RST2HTML_OPTIONS = --strip-comments \ 5 | --report=3 \ 6 | --no-doc-title \ 7 | --traceback \ 8 | --compact-lists \ 9 | --no-toc-backlinks \ 10 | --syntax-highlight=short \ 11 | --template=page.tmpl \ 12 | --cloak-email-addresses \ 13 | --stylesheet=$(STYLESHEET) \ 14 | --link-stylesheet 15 | 16 | SOURCES = $(wildcard doc/*.rst) 17 | TMP = $(subst .rst,.html, $(SOURCES)) 18 | OBJECTS = $(subst doc/,, $(TMP)) 19 | 20 | all:$(OBJECTS) 21 | 22 | %.html: doc/%.rst 23 | @echo " - $@" 24 | @$(RST2HTML) $(RST2HTML_OPTIONS) $< $@ 25 | 26 | clean: 27 | @-rm -f $(OBJECTS) 28 | 29 | distclean: clean 30 | @-rm -f `find . -name "*~"` 31 | 32 | .PHONY: all clean distclean 33 | -------------------------------------------------------------------------------- /plugins/bootstrap-rst/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | __title__ = 'bootstrap-rst' 3 | __version__ = '0.1.1' 4 | __author__ = 'Nicolas P. Rougier' 5 | __credits__ = ['Nicolas P. Rougier', 'Alex Waite', 'Trevor Morgan'] 6 | __maintainer__ = "Alex Waite" 7 | __email__ = "alex@waite.eu" 8 | __status__ = "Development" 9 | __license__ = 'MIT' 10 | __copyright__ = 'Copyright 2014' 11 | 12 | from .bootstrap import * 13 | -------------------------------------------------------------------------------- /plugins/bootstrap-rst/bootstrap/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/bootstrap-rst/bootstrap/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /plugins/bootstrap-rst/bootstrap/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/bootstrap-rst/bootstrap/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /plugins/bootstrap-rst/bootstrap/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/bootstrap-rst/bootstrap/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /plugins/bootstrap-rst/doc/bootstrap-roles.txt: -------------------------------------------------------------------------------- 1 | .. ---------------------------------------------------------------------------- 2 | .. Bootstrap RST - role definitions 3 | .. ---------------------------------------------------------------------------- 4 | 5 | .. role:: small 6 | .. role:: kbd 7 | .. role:: badge 8 | 9 | .. role:: text-muted 10 | .. role:: text-primary 11 | .. role:: text-success 12 | .. role:: text-info 13 | .. role:: text-warning 14 | .. role:: text-danger 15 | 16 | .. role:: bg-muted 17 | .. role:: bg-primary 18 | .. role:: bg-success 19 | .. role:: bg-info 20 | .. role:: bg-warning 21 | .. role:: bg-danger 22 | -------------------------------------------------------------------------------- /plugins/bootstrap-rst/doc/components-badges.txt: -------------------------------------------------------------------------------- 1 | Badges 2 | =============================================================================== 3 | .. lead:: Easily highlight new or unread items by adding a 4 | to links, Bootstrap navs, and more. 5 | 6 | 7 | .. container:: bs-example 8 | 9 | `Inbox <#>`_ :badge:`42` 10 | 11 | 12 | Self collapsing 13 | 14 | When there are no new or unread items, badges will simply collapse (via CSS's 15 | `:empty` selector) provided no content exists within. 16 | -------------------------------------------------------------------------------- /plugins/bootstrap-rst/doc/components-breadcrumbs.txt: -------------------------------------------------------------------------------- 1 | Breadcrumbs 2 | =============================================================================== 3 | .. lead:: Indicate the current page's location within a navigational hierarchy. 4 | 5 | 6 | Separators are automatically added in CSS through `:before` and `content.` 7 | 8 | 9 | .. container:: bs-example 10 | 11 | .. class:: breadcrumb 12 | 13 | * Home 14 | 15 | .. class:: breadcrumb 16 | 17 | * Home 18 | * Library 19 | 20 | .. class:: breadcrumb 21 | 22 | * Home 23 | * Library 24 | * Data 25 | 26 | 27 | .. code:: 28 | :class: highlight 29 | 30 | .. class:: breadcrumb 31 | 32 | * Home 33 | 34 | .. class:: breadcrumb 35 | 36 | * Home 37 | * Library 38 | 39 | .. class:: breadcrumb 40 | 41 | * Home 42 | * Library 43 | * Data 44 | -------------------------------------------------------------------------------- /plugins/bootstrap-rst/doc/components-jumbotron.txt: -------------------------------------------------------------------------------- 1 | Jumbotron 2 | =============================================================================== 3 | 4 | A lightweight, flexible component that can optionally extend the entire 5 | viewport to showcase key content on your site. 6 | 7 | .. container:: bs-example 8 | 9 | .. jumbotron:: 10 | 11 | :h1:`Hello, world!` 12 | 13 | This is a simple hero unit, a simple jumbotron-style component for 14 | calling extra attention to featured content or information. 15 | 16 | .. button:: Learn more 17 | :class: primary large 18 | 19 | .. code:: 20 | :class: highlight 21 | 22 | 23 | .. jumbotron:: 24 | 25 | :h1:`Hello, world!` 26 | 27 | This is a simple hero unit, a simple jumbotron-style component for 28 | calling extra attention to featured content or information. 29 | 30 | .. button:: Learn more 31 | :class: primary large 32 | 33 | 34 | To make the jumbotron full width, and without rounded corners, place it outside 35 | all .containers and instead add a .container within. 36 | 37 | .. code:: 38 | :class: highlight 39 | 40 | 41 | .. jumbotron:: 42 | 43 | .. container:: 44 | 45 | ... 46 | -------------------------------------------------------------------------------- /plugins/bootstrap-rst/doc/components-page-header.txt: -------------------------------------------------------------------------------- 1 | Page header 2 | =============================================================================== 3 | 4 | A simple shell for an `h1` to appropriately space out and segment sections of 5 | content on a page. It can utilize the `h1`'s default `small` element, as well as 6 | most other components (with additional styles). 7 | 8 | 9 | 10 | .. lead:: Easily highlight new or unread items by adding a 11 | to links, Bootstrap navs, and more. 12 | 13 | 14 | .. container:: bs-example 15 | 16 | .. container:: page-header 17 | 18 | :h1:`Example page header Subtext for header` 19 | 20 | 21 | .. code:: 22 | :class: highlight 23 | 24 | .. page-header:: 25 | 26 | :h1:`Example page header Subtext for header` 27 | -------------------------------------------------------------------------------- /plugins/bootstrap-rst/doc/components-wells.txt: -------------------------------------------------------------------------------- 1 | Wells 2 | =============================================================================== 3 | 4 | Default well 5 | ------------ 6 | 7 | Use the well as a simple effect on an element to give it an inset effect. 8 | 9 | .. container:: bs-example 10 | 11 | .. class:: well 12 | 13 | Look, I'm in a well! 14 | 15 | .. code:: 16 | :class: highlight 17 | 18 | .. class:: well 19 | 20 | Look, I'm in a well! 21 | 22 | 23 | Optional classes 24 | ---------------- 25 | 26 | Control padding and rounded corners with two optional modifier classes. 27 | 28 | .. container:: bs-example 29 | 30 | .. class:: well well-lg 31 | 32 | Look, I'm in a well! 33 | 34 | .. code:: 35 | :class: highlight 36 | 37 | .. class:: well well-lg 38 | 39 | Look, I'm in a well! 40 | 41 | 42 | .. container:: bs-example 43 | 44 | .. class:: well well-sm 45 | 46 | Look, I'm in a well! 47 | 48 | .. code:: 49 | :class: highlight 50 | 51 | .. class:: well well-sm 52 | 53 | Look, I'm in a well! 54 | -------------------------------------------------------------------------------- /plugins/bootstrap-rst/page.tmpl: -------------------------------------------------------------------------------- 1 | %(head_prefix)s 2 | %(head)s 3 | 4 | 5 | 6 | 7 | 8 | %(stylesheet)s 9 | %(body_prefix)s 10 | %(body_pre_docinfo)s 11 | %(docinfo)s 12 |
13 | %(body)s 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | %(body_suffix)s 23 | -------------------------------------------------------------------------------- /plugins/category_meta/README.md: -------------------------------------------------------------------------------- 1 | Category Metadata 2 | ----------------- 3 | 4 | A plugin to read metadata for each category from an index file in that 5 | category's directory. 6 | 7 | For this plugin to work properly, your articles should not have a 8 | Category: tag in their metadata; instead, they should be stored in 9 | (subdirectories of) per-category directories. Each per-category 10 | directory must have a file named 'index.ext' at its top level, where 11 | .ext is any extension that will be picked up by an article reader. 12 | The metadata of that article becomes the metadata for the category, 13 | copied over verbatim, with three special cases: 14 | 15 | * The category's name is set to the article's title. 16 | * The category's slug is set to the name of the parent directory 17 | of the index.ext file. 18 | * The _text_ of the article is stored as category.description. 19 | 20 | You can use this, for example, to control the slug used for each 21 | category independently of its name, or to add a description at the top 22 | of each category page. 23 | -------------------------------------------------------------------------------- /plugins/category_meta/__init__.py: -------------------------------------------------------------------------------- 1 | from .category_meta import * 2 | -------------------------------------------------------------------------------- /plugins/clean_summary/__init__.py: -------------------------------------------------------------------------------- 1 | from .clean_summary import * 2 | -------------------------------------------------------------------------------- /plugins/code_include/__init__.py: -------------------------------------------------------------------------------- 1 | from .code_include import * 2 | -------------------------------------------------------------------------------- /plugins/collate_content/.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Python files 3 | *.pyc 4 | -------------------------------------------------------------------------------- /plugins/collate_content/__init__.py: -------------------------------------------------------------------------------- 1 | """ 2 | __init__.py 3 | =========== 4 | 5 | Edward J. Stronge 6 | (c) 2014 7 | 8 | Imports collate_content to facilitate Pelican's plugin loading process. 9 | """ 10 | from .collate_content import * 11 | -------------------------------------------------------------------------------- /plugins/creole_reader/Readme.md: -------------------------------------------------------------------------------- 1 | # Creole Reader 2 | 3 | This plugins allows you to write your posts using the wikicreole syntax. Give to 4 | these files the creole extension. The metadata are between `<
> <
>` 5 | tags. 6 | 7 | ## Dependency 8 | This plugin relies on [python-creole](https://pypi.python.org/pypi/python-creole/) to work. Install it with: 9 | `pip install python-creole` 10 | 11 | ## Syntax 12 | Use ** for strong, // for emphasis, one = for 1st level titles. Please use the 13 | following macro for code highlighting: 14 | `<> <>` 15 | 16 | For the complete syntax, look at: http://www.wikicreole.org/ 17 | 18 | ## Basic example 19 | ``` 20 | <
> 21 | title: Créole 22 | tags: creole, python, pelican_open 23 | date: 2013-12-12 24 | <
> 25 | 26 | = Title 1 27 | == Title 2 28 | 29 | Some nice text with **strong** and //emphasis//. 30 | 31 | * A nice list 32 | ** With sub-elements 33 | * Python 34 | 35 | <> 36 | print("Hello World") 37 | <> 38 | 39 | # An ordered list 40 | # A second item 41 | ``` 42 | -------------------------------------------------------------------------------- /plugins/creole_reader/__init__.py: -------------------------------------------------------------------------------- 1 | from .creole_reader import * 2 | -------------------------------------------------------------------------------- /plugins/custom_article_urls/__init__.py: -------------------------------------------------------------------------------- 1 | from .custom_article_urls import * 2 | -------------------------------------------------------------------------------- /plugins/dateish/__init__.py: -------------------------------------------------------------------------------- 1 | from .dateish import * 2 | -------------------------------------------------------------------------------- /plugins/dateish/dateish.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Dateish Plugin for Pelican 4 | ========================== 5 | 6 | This plugin adds the ability to treat arbitrary metadata fields as datetime 7 | objects. 8 | """ 9 | 10 | from pelican import signals 11 | from pelican.utils import get_date 12 | 13 | 14 | def dateish(generator): 15 | if 'DATEISH_PROPERTIES' not in generator.settings: 16 | return 17 | 18 | for article in generator.articles: 19 | for field in generator.settings['DATEISH_PROPERTIES']: 20 | if hasattr(article, field): 21 | value = getattr(article, field) 22 | if type(value) == list: 23 | setattr(article, field, [get_date(d) for d in value]) 24 | else: 25 | setattr(article, field, get_date(value)) 26 | 27 | def register(): 28 | signals.article_generator_finalized.connect(dateish) 29 | -------------------------------------------------------------------------------- /plugins/disqus_static/__init__.py: -------------------------------------------------------------------------------- 1 | from .disqus_static import * 2 | -------------------------------------------------------------------------------- /plugins/events/__init__.py: -------------------------------------------------------------------------------- 1 | from .events import * 2 | -------------------------------------------------------------------------------- /plugins/events/events_list.html: -------------------------------------------------------------------------------- 1 | 2 | {% extends "base.html" %} 3 | 4 | {% block title %} Events list - {{ SITENAME }}{% endblock %} 5 | 6 | {% block content %} 7 | 8 | {% if events_list %} 9 |
    10 | {% for evstart, evend, event in events_list %} 11 |
  • 12 |

    13 | 14 | {{event['title']}} 15 | 16 |

    17 |

    18 | {% if evstart.date() == evend.date() %} 19 | From {{evstart}} to {{evend.time()}} 20 | {% else %} 21 | From {{evstart}} to {{evend}} 22 | {% endif %} 23 |

    24 | 25 | {% if event.location %} 26 |

    Location: {{event.location}}

    27 | {% endif %} 28 | 29 |

    {{event['summary']}}

    30 | 31 |
  • 32 | {% endfor %} 33 |
34 | {% endif %} 35 | 36 | {% endblock %} 37 | -------------------------------------------------------------------------------- /plugins/extract_toc/__init__.py: -------------------------------------------------------------------------------- 1 | from .extract_toc import * 2 | -------------------------------------------------------------------------------- /plugins/feed_summary/__init__.py: -------------------------------------------------------------------------------- 1 | from .feed_summary import * 2 | -------------------------------------------------------------------------------- /plugins/filetime_from_git/__init__.py: -------------------------------------------------------------------------------- 1 | from .registration import * 2 | -------------------------------------------------------------------------------- /plugins/filetime_from_git/registration.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Handle registration and setup for plugin 4 | """ 5 | import logging 6 | from blinker import signal 7 | from .content_adapter import GitContentAdapter 8 | from pelican import signals 9 | 10 | DEV_LOGGER = logging.getLogger(__name__) 11 | 12 | content_git_object_init = signal('content_git_object_init') 13 | 14 | def send_content_git_object_init(content): 15 | content_git_object_init.send(content, git_content=GitContentAdapter(content)) 16 | 17 | 18 | def setup_option_defaults(pelican_inst): 19 | pelican_inst.settings.setdefault('GIT_FILETIME_FROM_GIT', True) 20 | pelican_inst.settings.setdefault('GIT_HISTORY_FOLLOWS_RENAME', True) 21 | pelican_inst.settings.setdefault('GIT_SHA_METADATA', True) 22 | pelican_inst.settings.setdefault('GIT_GENERATE_PERMALINK', False) 23 | 24 | 25 | def register(): 26 | signals.content_object_init.connect(send_content_git_object_init) 27 | signals.initialized.connect(setup_option_defaults) 28 | 29 | # Import actions 30 | from . import actions 31 | -------------------------------------------------------------------------------- /plugins/filetime_from_git/utils.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Utility functions 4 | """ 5 | from datetime import datetime 6 | import logging 7 | from pelican.utils import set_date_tzinfo 8 | 9 | DEV_LOGGER = logging.getLogger(__name__) 10 | 11 | 12 | STRING_BOOLS = { 13 | 'yes': True, 14 | 'no': False, 15 | 'true': True, 16 | 'false': False, 17 | '0': False, 18 | '1': True, 19 | 'on': True, 20 | 'off': False, 21 | } 22 | 23 | 24 | def string_to_bool(string): 25 | ''' 26 | Convert a string to a bool based 27 | ''' 28 | return STRING_BOOLS[string.strip().lower()] 29 | 30 | 31 | def datetime_from_timestamp(timestamp, content): 32 | """ 33 | Helper function to add timezone information to datetime, 34 | so that datetime is comparable to other datetime objects in recent versions 35 | that now also have timezone information. 36 | """ 37 | return set_date_tzinfo( 38 | datetime.fromtimestamp(timestamp), 39 | tz_name=content.settings.get('TIMEZONE', None)) 40 | -------------------------------------------------------------------------------- /plugins/filetime_from_hg/__init__.py: -------------------------------------------------------------------------------- 1 | from .filetime_from_hg import * 2 | -------------------------------------------------------------------------------- /plugins/footer_insert/README.md: -------------------------------------------------------------------------------- 1 | # Footer Insert 2 | 3 | This plugin allows you to insert a `FOOTER_INSERT_HTML` to the end of the blog. 4 | 5 | eg. add authors / blog infomation to every blog. 6 | 7 | ## Usage 8 | 9 | 1. Insert `FOOTER_INSERT_HTML` to your `pelicanconf.py`. You can use 10 | title / url / author / authors / slug / category / summary 11 | / date infomation in the config like this: `%(title)s`. 12 | 2. Insert this code to your artical template file, eg. `templates/article.html`: 13 | ``` 14 | {% if article.footer_insert_html %} 15 | {{ article.footer_insert_html }} 16 | {% endif %} 17 | ``` 18 | -------------------------------------------------------------------------------- /plugins/footer_insert/__init__.py: -------------------------------------------------------------------------------- 1 | from .footer_insert import * 2 | -------------------------------------------------------------------------------- /plugins/footer_insert/footer_insert.py: -------------------------------------------------------------------------------- 1 | """ 2 | Footer Insert 3 | """ 4 | 5 | from pelican import signals 6 | from pelican.contents import Content, Article 7 | 8 | 9 | def add_footer(content): 10 | if not isinstance(content, Article): 11 | return 12 | 13 | if 'FOOTER_INSERT_HTML' not in content.settings: 14 | return 15 | data_dict = { 16 | 'title': content.title, 17 | 'url': content.url, 18 | 'author': content.author.name, 19 | 'authors': ','.join([x.name for x in content.authors]), 20 | 'slug': content.slug, 21 | 'category': content.category, 22 | 'summary': content.summary, 23 | } 24 | if hasattr(content, 'date'): 25 | data_dict['date'] = content.date 26 | foot_insert_html = content.settings['FOOTER_INSERT_HTML'] % data_dict 27 | content.footer_insert_html = foot_insert_html 28 | 29 | def register(): 30 | signals.content_object_init.connect(add_footer) 31 | -------------------------------------------------------------------------------- /plugins/gallery/__init__.py: -------------------------------------------------------------------------------- 1 | from .gallery import * 2 | -------------------------------------------------------------------------------- /plugins/gist_directive/README.rst: -------------------------------------------------------------------------------- 1 | Pelican ``gist_directive`` plugin 2 | ================================= 3 | 4 | This plugin adds a ``gist`` reStructuredText directive. Eg:: 5 | 6 | .. gist:: ionelmc/eb11afbcca187bad5273 setup.py python 7 | 8 | It will download (with cache) and include the gist contents in the document. 9 | 10 | .. note:: 11 | 12 | It also supports embedding content from github directly. 13 | 14 | Example, to include ``https://raw.githubusercontent.com/ionelmc/cookiecutter-pylibrary/master/%7B%7Bcookiecutter.repo_name%7D%7D/setup.py``:: 15 | 16 | .. github:: ionelmc/cookiecutter-pylibrary master/{{cookiecutter.repo_name}}/setup.py 17 | 18 | -------------------------------------------------------------------------------- /plugins/gist_directive/__init__.py: -------------------------------------------------------------------------------- 1 | from gist_directive import * 2 | -------------------------------------------------------------------------------- /plugins/github-wiki/__init__.py: -------------------------------------------------------------------------------- 1 | from .wiki import * 2 | -------------------------------------------------------------------------------- /plugins/github-wiki/wiki.js: -------------------------------------------------------------------------------- 1 | window.addEventListener("load", function() { 2 | document.querySelector(".wiki-nav-button").addEventListener('click', function(event) { 3 | document.querySelector(".wiki-links").classList.toggle('nodisplay'); 4 | event.target.text = event.target.text == "Expand Menu" ? "Collapse Menu" : "Expand Menu"; 5 | }, false); 6 | var expanders = document.querySelectorAll(".wiki-dir-expander"); 7 | for (i = 0; i < expanders.length; ++i) { 8 | expanders[i].addEventListener('click', function(event) { 9 | event.target.parentElement.nextSibling.nextSibling.classList.toggle("nodisplay"); 10 | event.target.text = event.target.text == "+" ? "-" : "+"; 11 | }, false); 12 | }; 13 | }, false); 14 | -------------------------------------------------------------------------------- /plugins/github_activity/__init__.py: -------------------------------------------------------------------------------- 1 | from .github_activity import * 2 | -------------------------------------------------------------------------------- /plugins/global_license/Readme.rst: -------------------------------------------------------------------------------- 1 | Global license 2 | -------------- 3 | 4 | This plugin allows you to define a ``LICENSE`` setting and adds the contents of that 5 | license variable to the article's context, making that variable available to use 6 | from within your theme's templates. 7 | -------------------------------------------------------------------------------- /plugins/global_license/__init__.py: -------------------------------------------------------------------------------- 1 | from .global_license import * 2 | -------------------------------------------------------------------------------- /plugins/global_license/global_license.py: -------------------------------------------------------------------------------- 1 | """ 2 | License plugin for Pelican 3 | ========================== 4 | 5 | This plugin allows you to define a LICENSE setting and adds the contents of that 6 | license variable to the article's context, making that variable available to use 7 | from within your theme's templates. 8 | """ 9 | 10 | from pelican import signals 11 | 12 | def add_license(generator, metadata): 13 | if 'license' not in metadata.keys()\ 14 | and 'LICENSE' in generator.settings.keys(): 15 | metadata['license'] = generator.settings['LICENSE'] 16 | 17 | def register(): 18 | signals.article_generator_context.connect(add_license) 19 | -------------------------------------------------------------------------------- /plugins/glossary/__init__.py: -------------------------------------------------------------------------------- 1 | from .glossary import * 2 | -------------------------------------------------------------------------------- /plugins/goodreads_activity/__init__.py: -------------------------------------------------------------------------------- 1 | from .goodreads_activity import * -------------------------------------------------------------------------------- /plugins/googleplus_comments/Readme.md: -------------------------------------------------------------------------------- 1 | GooglePlus Comments Plugin For Pelican 2 | ================================== 3 | 4 | Adds GooglePlus comments to Pelican 5 | 6 | Add the plugin to `pelicanconf.py`: 7 | 8 | PLUGIN_PATH = 'pelican-plugins' 9 | PLUGINS = ["googleplus_comments"] 10 | 11 | Add a `
` for comments to the `article.html` of your template: 12 | 13 |
14 |
15 |
16 | {{ article.metadata.googleplus_comments }} 17 | 18 | See it working, and ask for support: 19 | 20 | 21 | -------------------------------------------------------------------------------- /plugins/googleplus_comments/__init__.py: -------------------------------------------------------------------------------- 1 | from .googleplus_comments import * 2 | -------------------------------------------------------------------------------- /plugins/googleplus_comments/googleplus_comments.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Google Comments Plugin For Pelican 4 | ================================== 5 | 6 | Adds Google comments to Pelican 7 | """ 8 | 9 | from pelican import signals 10 | 11 | googleplus_comments_snippet = """ 12 | 13 | 23 | """ 24 | 25 | def add_googleplus_comments(generator, metadata): 26 | metadata["googleplus_comments"] = googleplus_comments_snippet 27 | 28 | def register(): 29 | signals.article_generator_context.connect(add_googleplus_comments) 30 | -------------------------------------------------------------------------------- /plugins/gravatar/Readme.rst: -------------------------------------------------------------------------------- 1 | Gravatar 2 | -------- 3 | 4 | This plugin assigns the ``author_gravatar`` variable to the Gravatar URL and 5 | makes the variable available within the article's context. You can add 6 | ``AUTHOR_EMAIL`` to your settings file to define the default author's email 7 | address. Obviously, that email address must be associated with a Gravatar 8 | account. 9 | 10 | Alternatively, you can provide an email address from within article metadata. 11 | 12 | In reSTructuredText:: 13 | 14 | :email: john.doe@example.com 15 | 16 | In Markdown:: 17 | 18 | Email: john.doe@example.com 19 | 20 | If the email address is defined via at least one of the two methods above, the 21 | ``author_gravatar`` variable is added to the article's context. For Markdown, 22 | it is critical that the 'E' in ``Email`` is capitalized. 23 | 24 | -------------------------------------------------------------------------------- /plugins/gravatar/__init__.py: -------------------------------------------------------------------------------- 1 | from .gravatar import * 2 | -------------------------------------------------------------------------------- /plugins/gravatar/gravatar.py: -------------------------------------------------------------------------------- 1 | """ 2 | Gravatar plugin for Pelican 3 | =========================== 4 | 5 | This plugin assigns the ``author_gravatar`` variable to the Gravatar URL and 6 | makes the variable available within the article's context. 7 | """ 8 | 9 | import hashlib 10 | import six 11 | 12 | from pelican import signals 13 | 14 | 15 | def add_gravatar(generator, metadata): 16 | 17 | #first check email 18 | if 'email' not in metadata.keys()\ 19 | and 'AUTHOR_EMAIL' in generator.settings.keys(): 20 | metadata['email'] = generator.settings['AUTHOR_EMAIL'] 21 | 22 | #then add gravatar url 23 | if 'email' in metadata.keys(): 24 | email_bytes = six.b(metadata['email']).lower() 25 | gravatar_url = "https://www.gravatar.com/avatar/" + \ 26 | hashlib.md5(email_bytes).hexdigest() 27 | metadata['author_gravatar'] = gravatar_url 28 | 29 | 30 | def register(): 31 | signals.article_generator_context.connect(add_gravatar) 32 | -------------------------------------------------------------------------------- /plugins/gzip_cache/Readme.rst: -------------------------------------------------------------------------------- 1 | Gzip cache 2 | ---------- 3 | 4 | Certain web servers (e.g., Nginx) can use a static cache of gzip-compressed 5 | files to prevent the server from compressing files during an HTTP call. Since 6 | compression occurs at another time, these compressed files can be compressed 7 | at a higher compression level for increased optimization. 8 | 9 | The ``gzip_cache`` plugin compresses all common text type files into a ``.gz`` 10 | file within the same directory as the original file. 11 | 12 | Settings 13 | -------- 14 | 15 | * `GZIP_CACHE_OVERWRITE` 16 | If True, the original files will be replaced by the gzip-compressed files. 17 | This is useful for static hosting services (e.g S3). Defaults to False. -------------------------------------------------------------------------------- /plugins/gzip_cache/__init__.py: -------------------------------------------------------------------------------- 1 | from .gzip_cache import * 2 | -------------------------------------------------------------------------------- /plugins/headerid/README.rst: -------------------------------------------------------------------------------- 1 | Pelican ``headerid`` plugin 2 | =========================== 3 | 4 | This plugin adds an anchor to each heading so you can deep-link to headers. 5 | It is intended for formats such as reStructuredText that do not natively 6 | generate these anchors. 7 | 8 | The ``HEADERID_LINK_CHAR`` config can be set to use a different char from ``*`` 9 | for anchor text. 10 | 11 | For Markdown, this plugin is less relevant since the Python-Markdown library 12 | includes a Table of Contents extension that will generate link anchors. 13 | To enable the ``toc`` extension, add a line similar to the following example 14 | to your Pelican settings file:: 15 | 16 | MD_EXTENSIONS = ["codehilite(css_class=highlight)", "extra", "toc"] 17 | -------------------------------------------------------------------------------- /plugins/headerid/__init__.py: -------------------------------------------------------------------------------- 1 | from .headerid import * 2 | -------------------------------------------------------------------------------- /plugins/headerid/headerid.py: -------------------------------------------------------------------------------- 1 | from pelican import readers 2 | from pelican.readers import PelicanHTMLTranslator 3 | from pelican import signals 4 | from docutils import nodes 5 | 6 | LINK_CHAR = '*' 7 | 8 | 9 | def init_headerid(sender): 10 | global LINK_CHAR 11 | char = sender.settings.get('HEADERID_LINK_CHAR') 12 | if char: 13 | LINK_CHAR = char 14 | 15 | def register(): 16 | signals.initialized.connect(init_headerid) 17 | 18 | 19 | class HeaderIDPatchedPelicanHTMLTranslator(PelicanHTMLTranslator): 20 | def depart_title(self, node): 21 | close_tag = self.context[-1] 22 | parent = node.parent 23 | if isinstance(parent, nodes.section) and parent.hasattr('ids') and parent['ids']: 24 | anchor_name = parent['ids'][0] 25 | # add permalink anchor 26 | if close_tag.startswith('%s' % 29 | (anchor_name, LINK_CHAR)) 30 | PelicanHTMLTranslator.depart_title(self, node) 31 | readers.PelicanHTMLTranslator = HeaderIDPatchedPelicanHTMLTranslator 32 | -------------------------------------------------------------------------------- /plugins/html_entity/README.rst: -------------------------------------------------------------------------------- 1 | HTML Entities for reStructuredText 2 | ################################## 3 | 4 | This plugin allows you to enter HTML entities such as ©, <, • inline in a RST document, as opposed 5 | to the tedious method of creating substitution definitions. 6 | 7 | Roles 8 | ===== 9 | 10 | Adds one inline role: 11 | 12 | :: 13 | 14 | :html_entity: 15 | 16 | Usage 17 | ===== 18 | 19 | :: 20 | 21 | :html_entity:`copy` 2013 :html_entity:`lt` Pelican :html_entity:`gt` Industries :html_entity:`149` All Rights Reserved 22 | 23 | produces: 24 | 25 | |copy| 2013 |lt| Pelican |gt| Industries |bullet| All Rights Reserved 26 | 27 | .. |copy| unicode:: U+000A9 .. COPYRIGHT SIGN 28 | .. |lt| unicode:: U+003C .. LESS THAN 29 | .. |gt| unicode:: U+003E .. GREATER THAN 30 | .. |bullet| unicode:: U+2022 .. BULLET 31 | -------------------------------------------------------------------------------- /plugins/html_entity/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/html_entity/__init__.py -------------------------------------------------------------------------------- /plugins/html_rst_directive/Readme.rst: -------------------------------------------------------------------------------- 1 | HTML tags for reStructuredText 2 | ------------------------------ 3 | 4 | This plugin allows you to use HTML tags from within reST documents. 5 | 6 | 7 | Directives 8 | ---------- 9 | 10 | 11 | :: 12 | 13 | .. html:: 14 | 15 | (HTML code) 16 | 17 | 18 | Example 19 | ------- 20 | 21 | A search engine:: 22 | 23 | .. html:: 24 | 25 |
26 | 27 | 28 | 29 |
30 | 31 | 32 | A contact form:: 33 | 34 | .. html:: 35 | 36 |
37 |

38 | 39 |
40 | 42 |
43 | 44 |

45 |
46 | -------------------------------------------------------------------------------- /plugins/html_rst_directive/__init__.py: -------------------------------------------------------------------------------- 1 | from .html_rst_directive import * 2 | -------------------------------------------------------------------------------- /plugins/html_rst_directive/html_rst_directive.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | HTML tags for reStructuredText 4 | ============================== 5 | 6 | This plugin allows you to use HTML tags from within reST documents. 7 | 8 | """ 9 | 10 | from __future__ import unicode_literals 11 | from docutils import nodes 12 | from docutils.parsers.rst import directives, Directive 13 | 14 | 15 | class RawHtml(Directive): 16 | required_arguments = 0 17 | optional_arguments = 0 18 | final_argument_whitespace = True 19 | has_content = True 20 | 21 | def run(self): 22 | html = ' '.join(self.content) 23 | node = nodes.raw('', html, format='html') 24 | return [node] 25 | 26 | 27 | 28 | def register(): 29 | directives.register_directive('html', RawHtml) 30 | 31 | -------------------------------------------------------------------------------- /plugins/i18n_subsites/__init__.py: -------------------------------------------------------------------------------- 1 | from .i18n_subsites import * 2 | -------------------------------------------------------------------------------- /plugins/i18n_subsites/test_data/content/images/img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/i18n_subsites/test_data/content/images/img.png -------------------------------------------------------------------------------- /plugins/i18n_subsites/test_data/content/pages/hidden-page-cz.rst: -------------------------------------------------------------------------------- 1 | 404 stránka 2 | =========== 3 | :slug: 404 4 | :lang: cz 5 | :status: hidden 6 | 7 | Jednoduchá 404 stránka. 8 | -------------------------------------------------------------------------------- /plugins/i18n_subsites/test_data/content/pages/hidden-page-de.rst: -------------------------------------------------------------------------------- 1 | Eine 404 Seite 2 | ============== 3 | :slug: 404 4 | :lang: de 5 | :status: hidden 6 | 7 | Eine einfache 404 Seite. 8 | -------------------------------------------------------------------------------- /plugins/i18n_subsites/test_data/content/pages/hidden-page-en.rst: -------------------------------------------------------------------------------- 1 | A 404 page 2 | ========== 3 | :slug: 404 4 | :lang: en 5 | :status: hidden 6 | 7 | A simple 404 page. 8 | -------------------------------------------------------------------------------- /plugins/i18n_subsites/test_data/content/pages/untranslated-page.rst: -------------------------------------------------------------------------------- 1 | Untranslated page 2 | ================= 3 | :lang: en 4 | 5 | This page has no translation. 6 | -------------------------------------------------------------------------------- /plugins/i18n_subsites/test_data/content/translated_article-cz.rst: -------------------------------------------------------------------------------- 1 | Přeložený článek 2 | ================ 3 | :slug: translated-article 4 | :lang: cz 5 | :date: 2014-09-15 6 | 7 | Jednoduchý článek s překlady. 8 | Zde je odkaz na `nějaký obrázek <{filename}/images/img.png>`_. 9 | -------------------------------------------------------------------------------- /plugins/i18n_subsites/test_data/content/translated_article-de.rst: -------------------------------------------------------------------------------- 1 | Ein übersetzter Artikel 2 | ======================= 3 | :slug: translated-article 4 | :lang: de 5 | :date: 2014-09-14 6 | 7 | Ein einfacher Artikel mit einer Übersetzung. 8 | Hier ist ein Link zur `einigem Bild <{filename}/images/img.png>`_. 9 | -------------------------------------------------------------------------------- /plugins/i18n_subsites/test_data/content/translated_article-en.rst: -------------------------------------------------------------------------------- 1 | A translated article 2 | ==================== 3 | :slug: translated-article 4 | :lang: en 5 | :date: 2014-09-13 6 | 7 | A simple article with a translation. 8 | Here is a link to `some image <{filename}/images/img.png>`_. 9 | -------------------------------------------------------------------------------- /plugins/i18n_subsites/test_data/content/untranslated_article-en.rst: -------------------------------------------------------------------------------- 1 | An untranslated article 2 | ======================= 3 | :date: 2014-07-14 4 | :lang: en 5 | 6 | An article without a translation. 7 | Here is a link to an `untranslated page`_ 8 | 9 | .. _`untranslated page`: {filename}/pages/untranslated-page.rst 10 | -------------------------------------------------------------------------------- /plugins/i18n_subsites/test_data/localized_theme/babel.cfg: -------------------------------------------------------------------------------- 1 | [jinja2: templates/**.html] 2 | 3 | -------------------------------------------------------------------------------- /plugins/i18n_subsites/test_data/localized_theme/messages.pot: -------------------------------------------------------------------------------- 1 | # Translations template for PROJECT. 2 | # Copyright (C) 2014 ORGANIZATION 3 | # This file is distributed under the same license as the PROJECT project. 4 | # FIRST AUTHOR , 2014. 5 | # 6 | #, fuzzy 7 | msgid "" 8 | msgstr "" 9 | "Project-Id-Version: PROJECT VERSION\n" 10 | "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 11 | "POT-Creation-Date: 2014-07-13 12:25+0200\n" 12 | "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 | "Last-Translator: FULL NAME \n" 14 | "Language-Team: LANGUAGE \n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=utf-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Generated-By: Babel 1.3\n" 19 | 20 | #: templates/base.html:3 21 | msgid "Welcome to our" 22 | msgstr "" 23 | 24 | -------------------------------------------------------------------------------- /plugins/i18n_subsites/test_data/localized_theme/static/style.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/i18n_subsites/test_data/localized_theme/static/style.css -------------------------------------------------------------------------------- /plugins/i18n_subsites/test_data/localized_theme/templates/base.html: -------------------------------------------------------------------------------- 1 | {% extends "!simple/base.html" %} 2 | 3 | {% block title %}{% trans %}Welcome to our{% endtrans %} {{ SITENAME }}{% endblock %} 4 | {% block head %} 5 | {{ super() }} 6 | 7 | {% endblock %} 8 | -------------------------------------------------------------------------------- /plugins/i18n_subsites/test_data/localized_theme/translations/de/LC_MESSAGES/messages.mo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/i18n_subsites/test_data/localized_theme/translations/de/LC_MESSAGES/messages.mo -------------------------------------------------------------------------------- /plugins/i18n_subsites/test_data/localized_theme/translations/de/LC_MESSAGES/messages.po: -------------------------------------------------------------------------------- 1 | # German translations for PROJECT. 2 | # Copyright (C) 2014 ORGANIZATION 3 | # This file is distributed under the same license as the PROJECT project. 4 | # FIRST AUTHOR , 2014. 5 | # 6 | msgid "" 7 | msgstr "" 8 | "Project-Id-Version: PROJECT VERSION\n" 9 | "Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" 10 | "POT-Creation-Date: 2014-07-13 12:25+0200\n" 11 | "PO-Revision-Date: 2014-07-13 12:26+0200\n" 12 | "Last-Translator: FULL NAME \n" 13 | "Language-Team: de \n" 14 | "Plural-Forms: nplurals=2; plural=(n != 1)\n" 15 | "MIME-Version: 1.0\n" 16 | "Content-Type: text/plain; charset=utf-8\n" 17 | "Content-Transfer-Encoding: 8bit\n" 18 | "Generated-By: Babel 1.3\n" 19 | 20 | #: templates/base.html:3 21 | msgid "Welcome to our" 22 | msgstr "Willkommen Sie zur unserer" 23 | 24 | -------------------------------------------------------------------------------- /plugins/i18n_subsites/test_data/output/images/img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/i18n_subsites/test_data/output/images/img.png -------------------------------------------------------------------------------- /plugins/i18n_subsites/test_data/output/theme/style.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/i18n_subsites/test_data/output/theme/style.css -------------------------------------------------------------------------------- /plugins/ical/Readme.rst: -------------------------------------------------------------------------------- 1 | ical 2 | ---- 3 | 4 | This plugin looks for and parses an ``.ics`` file if it is defined in a given 5 | page's ``calendar`` metadata. One calendar can be defined per page. 6 | 7 | Dependencies 8 | ------------ 9 | 10 | This plugin depends on the ``icalendar`` package, which can be installed via 11 | pip:: 12 | 13 | pip install icalendar 14 | 15 | Usage 16 | ----- 17 | 18 | For a reST-formatted page, include the following line in the metadata:: 19 | 20 | :calendar: /path/to/your/ics/file 21 | 22 | For Markdown, include the following line in the page metadata:: 23 | 24 | Calendar: /path/to/your/ics/file 25 | 26 | Following is some example code that can be added to your theme's ``page.html`` 27 | template in order to display the calendar:: 28 | 29 | {% if page.calendar %} 30 |
31 | {% for vevent in events[page.slug] %} 32 |
{{ vevent.summary }}
33 |
{{ vevent.description|replace('\n\n', '
') }}
34 |
{{ vevent.dtstart }}
35 |
{{ vevent.dtend }}
36 | 37 | {% endfor %} 38 |
39 | {% endif %} 40 | -------------------------------------------------------------------------------- /plugins/ical/__init__.py: -------------------------------------------------------------------------------- 1 | from .ical import * 2 | -------------------------------------------------------------------------------- /plugins/interlinks/__init__.py: -------------------------------------------------------------------------------- 1 | from .interlinks import * 2 | -------------------------------------------------------------------------------- /plugins/interlinks/test_data/testme.md: -------------------------------------------------------------------------------- 1 | Title: Testing 2 | Date: 3000-07-09 3 | Slug: plugin-test 4 | 5 | Testeando un poco la cosa 6 | 7 | [Normal boring link](http://www.example.com). But this is a [cool link](this>) that links to this site. 8 | 9 | Search in [Wikipedia](wikipedia_en>python), ([here](wikipedia_es>python) in spanish). Also can [search](ddg>python) it. 10 | -------------------------------------------------------------------------------- /plugins/jinja2content/__init__.py: -------------------------------------------------------------------------------- 1 | from .jinja2content import * 2 | -------------------------------------------------------------------------------- /plugins/latex: -------------------------------------------------------------------------------- 1 | render_math/ -------------------------------------------------------------------------------- /plugins/libravatar/.gitignore: -------------------------------------------------------------------------------- 1 | /*.pyc 2 | -------------------------------------------------------------------------------- /plugins/libravatar/__init__.py: -------------------------------------------------------------------------------- 1 | from . libravatar import * 2 | -------------------------------------------------------------------------------- /plugins/libravatar/test_data/theme/templates/article.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block content %} 3 |
4 |
5 | {% if article.author_libravatar %} 6 |
7 | 8 |
9 | {% endif %} 10 |
11 |
12 | {% endblock %} 13 | -------------------------------------------------------------------------------- /plugins/linker/__init__.py: -------------------------------------------------------------------------------- 1 | from .linker import * 2 | -------------------------------------------------------------------------------- /plugins/linker/content_objects.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from pelican import signals 3 | 4 | def initialize_content_object_set(app): 5 | app.settings['content_objects'] = set() 6 | 7 | def collect_content_objects(co): 8 | context = co._context['content_objects'].add(co) 9 | 10 | def register(): 11 | signals.initialized.connect(initialize_content_object_set) 12 | signals.content_object_init.connect(collect_content_objects) 13 | -------------------------------------------------------------------------------- /plugins/liquid_tags/.gitignore: -------------------------------------------------------------------------------- 1 | .tox 2 | test_data/cache/ 3 | test_data/output/theme/ 4 | _nb_header.html 5 | -------------------------------------------------------------------------------- /plugins/liquid_tags/__init__.py: -------------------------------------------------------------------------------- 1 | from .liquid_tags import * 2 | -------------------------------------------------------------------------------- /plugins/liquid_tags/liquid_tags.py: -------------------------------------------------------------------------------- 1 | from pelican import signals 2 | from .mdx_liquid_tags import LiquidTags, LT_CONFIG 3 | 4 | 5 | def addLiquidTags(gen): 6 | if not gen.settings.get('MARKDOWN'): 7 | from pelican.settings import DEFAULT_CONFIG 8 | gen.settings['MARKDOWN'] = DEFAULT_CONFIG['MARKDOWN'] 9 | 10 | if LiquidTags not in gen.settings['MARKDOWN']: 11 | configs = dict() 12 | for key,value in LT_CONFIG.items(): 13 | configs[key]=value 14 | for key,value in gen.settings.items(): 15 | if key in LT_CONFIG: 16 | configs[key]=value 17 | gen.settings['MARKDOWN'].setdefault( 18 | 'extensions', [] 19 | ).append( 20 | LiquidTags(configs) 21 | ) 22 | 23 | 24 | def register(): 25 | signals.initialized.connect(addLiquidTags) 26 | -------------------------------------------------------------------------------- /plugins/liquid_tags/literal.py: -------------------------------------------------------------------------------- 1 | """ 2 | Literal Tag 3 | ----------- 4 | This implements a tag that allows explicitly showing commands which would 5 | otherwise be interpreted as a liquid tag. 6 | 7 | For example, the line 8 | 9 | {% literal video arg1 arg2 %} 10 | 11 | would result in the following line: 12 | 13 | {% video arg1 arg2 %} 14 | 15 | This is useful when the resulting line would be interpreted as another 16 | liquid-style tag. 17 | """ 18 | from .mdx_liquid_tags import LiquidTags 19 | 20 | @LiquidTags.register('literal') 21 | def literal(preprocessor, tag, markup): 22 | return '{%% %s %%}' % markup 23 | 24 | #---------------------------------------------------------------------- 25 | # This import allows image tag to be a Pelican plugin 26 | from liquid_tags import register 27 | 28 | -------------------------------------------------------------------------------- /plugins/liquid_tags/speakerdeck.py: -------------------------------------------------------------------------------- 1 | """ 2 | Speakerdeck Tag 3 | --------------- 4 | This implements a Liquid-style speakerdeck tag for Pelican. 5 | 6 | Syntax 7 | ------ 8 | {% speakerdeck id %} 9 | 10 | Example 11 | ------- 12 | {% speakerdeck 82b209c0f181013106da6eb14261a8ef %} 13 | 14 | Output 15 | ------ 16 | 18 | """ 19 | from .mdx_liquid_tags import LiquidTags 20 | 21 | SYNTAX = "{% speakerdeck id %}" 22 | 23 | @LiquidTags.register('speakerdeck') 24 | def speakerdeck(preprocessor, tag, markup): 25 | speakerdeck_out = """ 26 | 28 | """.format(id=markup) 29 | 30 | return speakerdeck_out 31 | 32 | 33 | # --------------------------------------------------- 34 | # This import allows speakerdeck tag to be a Pelican plugin 35 | from liquid_tags import register # noqa 36 | -------------------------------------------------------------------------------- /plugins/liquid_tags/test_data/content/test-ipython-notebook-nbformat3.md: -------------------------------------------------------------------------------- 1 | Title: test ipython notebook nb format 3 2 | Date: 2015-03-03 3 | Authors: Testing Man 4 | 5 | 6 | Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod 7 | tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At 8 | vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, 9 | no sea takimata sanctus est Lorem ipsum dolor sit amet. 10 | 11 | #Loading an entire notebook nbformat = 3.0 12 | 13 | {% notebook test_nbformat3.ipynb %} 14 | 15 | #Loading selected cells from a notebook nbformat = 3.0 16 | 17 | {% notebook test_nbformat3.ipynb cells[1:5] %} 18 | -------------------------------------------------------------------------------- /plugins/liquid_tags/test_data/content/test-ipython-notebook-nbformat4.md: -------------------------------------------------------------------------------- 1 | Title: test ipython notebook nb format 4 2 | Date: 2015-03-03 3 | Authors: Testing Man 4 | 5 | 6 | Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod 7 | tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At 8 | vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, 9 | no sea takimata sanctus est Lorem ipsum dolor sit amet. 10 | 11 | #Loading an entire notebook nbformat = 4.0 12 | 13 | {% notebook test_nbformat4.ipynb %} 14 | 15 | #Loading selected cells from a notebook nbformat = 4.0 16 | 17 | {% notebook test_nbformat4.ipynb cells[1:5] %} 18 | -------------------------------------------------------------------------------- /plugins/liquid_tags/test_data/pelicanconf.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- # 3 | from __future__ import unicode_literals 4 | 5 | AUTHOR = 'The Tester' 6 | SITENAME = 'Testing site' 7 | SITEURL = 'http://example.com/test' 8 | 9 | # to make the test suite portable 10 | TIMEZONE = 'UTC' 11 | PATH = 'content' 12 | 13 | READERS = {'html': None} 14 | 15 | # Generate only one feed 16 | FEED_ALL_ATOM = None 17 | CATEGORY_FEED_ATOM = None 18 | TRANSLATION_FEED_ATOM = None 19 | AUTHOR_FEED_ATOM = None 20 | AUTHOR_FEED_RSS = None 21 | 22 | # Disable unnecessary pages 23 | CATEGORY_SAVE_AS = '' 24 | TAG_SAVE_AS = '' 25 | AUTHOR_SAVE_AS = '' 26 | ARCHIVES_SAVE_AS = '' 27 | AUTHORS_SAVE_AS = '' 28 | CATEGORIES_SAVE_AS = '' 29 | TAGS_SAVE_AS = '' 30 | 31 | PLUGIN_PATHS = ['../../'] 32 | PLUGINS = ['liquid_tags.notebook'] 33 | 34 | NOTEBOOK_DIR = 'notebooks' 35 | -------------------------------------------------------------------------------- /plugins/liquid_tags/test_data/pelicanhtml_2.tpl: -------------------------------------------------------------------------------- 1 | ../pelicanhtml_2.tpl -------------------------------------------------------------------------------- /plugins/liquid_tags/test_data/pelicanhtml_3.tpl: -------------------------------------------------------------------------------- 1 | ../pelicanhtml_3.tpl -------------------------------------------------------------------------------- /plugins/liquid_tags/test_giphy.py: -------------------------------------------------------------------------------- 1 | from . import giphy 2 | try: 3 | from unittest.mock import patch 4 | except ImportError: 5 | from mock import patch 6 | import os 7 | import pytest 8 | 9 | 10 | PLUGIN_DIR = os.path.dirname(__file__) 11 | TEST_DATA_DIR = os.path.join(PLUGIN_DIR, 'test_data') 12 | 13 | 14 | @pytest.mark.parametrize('input,expected', [ 15 | (dict(gif_id='abc123'), 16 | ('' 17 | 'source: http://www.tumblr.com')), 19 | (dict(gif_id='abc123', alt='ive had some free time'), 20 | ('' 21 | 'ive had some free time')) 23 | ]) 24 | @patch('liquid_tags.giphy.urlopen') 25 | def test_create_html(mock_urlopen, input, expected): 26 | with open(TEST_DATA_DIR + '/giphy.json', 'rb') as f: 27 | mock_urlopen.return_value.read.return_value = f.read() 28 | 29 | assert giphy.create_html('test_api_key', input) == expected 30 | -------------------------------------------------------------------------------- /plugins/liquid_tags/test_soundcloud.py: -------------------------------------------------------------------------------- 1 | from . import soundcloud 2 | import pytest 3 | 4 | 5 | @pytest.mark.parametrize('input,expected', [ 6 | ('https://soundcloud.com/forss/in-paradisum', 7 | dict(track_url='https://soundcloud.com/forss/in-paradisum')), 8 | ('http://soundcloud.com/forss/in-paradisum', 9 | dict(track_url='http://soundcloud.com/forss/in-paradisum')), 10 | ('https://soundcloud.com/toroymoi/real-love-ft-kool-ad', 11 | dict(track_url='https://soundcloud.com/toroymoi/real-love-ft-kool-ad')), 12 | ('https://soundcloud.com/capturedtracks/sets/wild-nothing-nocturne', 13 | dict(track_url=('https://soundcloud.com/capturedtracks/' 14 | 'sets/wild-nothing-nocturne'))) 15 | ]) 16 | def test_match_it(input, expected): 17 | assert soundcloud.match_it(input) == expected 18 | 19 | 20 | @pytest.mark.parametrize('input', [ 21 | 'http://foobar.com', 22 | 'foobar', 23 | 'https://google.com' 24 | ]) 25 | def test_match_it_exception(input): 26 | with pytest.raises(ValueError): 27 | soundcloud.match_it(input) 28 | -------------------------------------------------------------------------------- /plugins/liquid_tags/tox.ini: -------------------------------------------------------------------------------- 1 | [tox] 2 | skipsdist = True 3 | minversion = 1.8 4 | envlist = 5 | py{27,34}-ipython2, 6 | py{27,34}-ipython3, 7 | 8 | [testenv] 9 | commands = py.test 10 | 11 | deps = 12 | pytest 13 | pytest-capturelog 14 | pelican 15 | markdown 16 | mock 17 | ipython2: ipython[notebook]>=2,<3 18 | ipython3: ipython[notebook] 19 | -------------------------------------------------------------------------------- /plugins/md_inline_extension/__init__.py: -------------------------------------------------------------------------------- 1 | from .inline import * 2 | -------------------------------------------------------------------------------- /plugins/members/Readme.rst: -------------------------------------------------------------------------------- 1 | Members 2 | ------- 3 | 4 | This plugin looks for a ``members`` metadata header containing key/value pairs 5 | and makes them available for use in templates. 6 | 7 | The first line of this metadata defines each key, and the following line should 8 | contain corresponding values for each member. 9 | 10 | The keys must be in the same first line as the ``members`` metadata header, 11 | and the next line containing the corresponding values must have an identation 12 | before it. 13 | 14 | Example for reStructuredText:: 15 | 16 | :members: name, email, twitter, github, site_nome, site_href 17 | Danilo Shiga, daniloshiga@gmail.com, @daneoshiga, daneoshiga, Danilo Shiga, http://daniloshiga.com 18 | 19 | Example for Markdown:: 20 | 21 | members: name, email, twitter, github, site_nome, site_href 22 | Danilo Shiga, daniloshiga@gmail.com, @daneoshiga, daneoshiga, Danilo Shiga, http://daniloshiga.com 23 | -------------------------------------------------------------------------------- /plugins/members/__init__.py: -------------------------------------------------------------------------------- 1 | from members import * # noqa 2 | -------------------------------------------------------------------------------- /plugins/multi_part/Readme.md: -------------------------------------------------------------------------------- 1 | Multi parts posts 2 | ----------------- 3 | 4 | **This plugin has been deprecated. See the series plugin for a better support of multi part articles.** 5 | 6 | The multi-part posts plugin allow you to write multi-part posts. 7 | 8 | In order to mark posts as part of a multi-part post, use the `:parts:` metadata: 9 | 10 | :parts: MY_AWESOME_MULTI_PART_POST 11 | 12 | You can then use the `article.metadata.parts_articles` variable in your templates 13 | to display other parts of current post. 14 | 15 | For example: 16 | 17 | {% if article.metadata.parts_articles %} 18 |

This post is part of a series:

19 |
    20 | {% for part_article in article.metadata.parts_articles %} 21 |
  1. 22 | {{ part_article.title }} 23 |
  2. 24 | {% endfor %} 25 |
26 | {% endif %} 27 | -------------------------------------------------------------------------------- /plugins/multi_part/__init__.py: -------------------------------------------------------------------------------- 1 | from .multi_part import * 2 | -------------------------------------------------------------------------------- /plugins/multi_part/multi_part.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | """ 3 | Copyright (c) FELD Boris 4 | 5 | Multiple part support 6 | ===================== 7 | 8 | Create a navigation menu for multi-part related_posts 9 | """ 10 | 11 | from collections import defaultdict 12 | 13 | from pelican import signals 14 | 15 | from logging import warning 16 | 17 | warning_message = """multi_part plugin: this plugin has been deprecated. 18 | The 'series' plugin provides better support for multi part articles. 19 | """ 20 | 21 | def aggregate_multi_part(generator): 22 | warning(warning_message) 23 | multi_part = defaultdict(list) 24 | 25 | for article in generator.articles: 26 | if 'parts' in article.metadata: 27 | multi_part[article.metadata['parts']].append(article) 28 | 29 | for part_id in multi_part: 30 | parts = multi_part[part_id] 31 | 32 | # Sort by date 33 | parts.sort(key=lambda x: x.metadata['date']) 34 | 35 | for article in parts: 36 | article.metadata['parts_articles'] = parts 37 | 38 | 39 | def register(): 40 | signals.article_generator_finalized.connect(aggregate_multi_part) 41 | -------------------------------------------------------------------------------- /plugins/neighbors/__init__.py: -------------------------------------------------------------------------------- 1 | from .neighbors import * 2 | -------------------------------------------------------------------------------- /plugins/optimize_images/Readme.md: -------------------------------------------------------------------------------- 1 | Optimize Images Plugin For Pelican 2 | ================================== 3 | 4 | This plugin applies lossless compression on JPEG and PNG images, with no 5 | effect on image quality. It uses [jpegtran][1] and [OptiPNG][2]. It assumes 6 | that both of these tools are installed on system path. 7 | 8 | [1]: http://jpegclub.org/jpegtran/ "jpegtran" 9 | [2]: http://optipng.sourceforge.net/ "OptiPNG" 10 | 11 | 12 | Installation 13 | ------------ 14 | 15 | To enable, ensure that `optimize_images.py` is put somewhere that is accessible. 16 | Then use as follows by adding the following to your settings.py: 17 | 18 | PLUGIN_PATH = 'path/to/pelican-plugins' 19 | PLUGINS = ["optimize_images"] 20 | 21 | `PLUGIN_PATH` can be a path relative to your settings file or an absolute path. 22 | 23 | Usage 24 | ----- 25 | The plugin will activate and optimize images upon `finalized` signal of 26 | pelican. -------------------------------------------------------------------------------- /plugins/optimize_images/__init__.py: -------------------------------------------------------------------------------- 1 | from .optimize_images import * 2 | -------------------------------------------------------------------------------- /plugins/org_reader/__init__.py: -------------------------------------------------------------------------------- 1 | from .org_reader import * 2 | -------------------------------------------------------------------------------- /plugins/pdf/__init__.py: -------------------------------------------------------------------------------- 1 | from .pdf import * 2 | -------------------------------------------------------------------------------- /plugins/pelican-rdf/__init__.py: -------------------------------------------------------------------------------- 1 | from .pelican_rdf import * 2 | -------------------------------------------------------------------------------- /plugins/pelican-rdf/sparql-queries/classes.sparql: -------------------------------------------------------------------------------- 1 | PREFIX owl: 2 | PREFIX dc: 3 | PREFIX cc: 4 | PREFIX rdfs: 5 | 6 | SELECT ?class ?comment ?label 7 | WHERE { 8 | ?class rdf:type owl:Class. 9 | OPTIONAL { ?class rdfs:comment ?comment.} 10 | OPTIONAL { ?label rdfs:label ?label.} 11 | OPTIONAL { ?class rdfs:subClassOf ?superclass.} 12 | } GROUP BY ?class -------------------------------------------------------------------------------- /plugins/pelican-rdf/sparql-queries/lov_metadata.sparql: -------------------------------------------------------------------------------- 1 | PREFIX owl: 2 | PREFIX dc: 3 | PREFIX cc: 4 | SELECT ?iri ?license ?description ?version ?title 5 | WHERE { 6 | ?iri rdf:type owl:Ontology; 7 | cc:license ?license; 8 | dc:description ?description; 9 | dc:title ?title; 10 | owl:versionInfo ?version. 11 | } LIMIT 1 -------------------------------------------------------------------------------- /plugins/pelican_comment_system/__init__.py: -------------------------------------------------------------------------------- 1 | from .pelican_comment_system import * 2 | -------------------------------------------------------------------------------- /plugins/pelican_comment_system/doc/feed.md: -------------------------------------------------------------------------------- 1 | # Comment Atom Feed 2 | ## Custom comment url 3 | Be sure that the id of the html tag containing the comment matches `COMMENT_URL`. 4 | 5 | ##### pelicanconf.py 6 | ```python 7 | COMMENT_URL = "#my_own_comment_id_{slug}" 8 | ``` 9 | 10 | ##### Theme 11 | ```html 12 | {% for comment in article.comments recursive %} 13 | ... 14 |
{{ comment.content }}
15 | ... 16 | {% endfor %} 17 | ``` 18 | ## Theme 19 | #### Link 20 | To display a link to the article feed simply add the following to your theme: 21 | 22 | ```html 23 | {% if article %} 24 | Comment Atom Feed 25 | {% endif %} 26 | ``` 27 | 28 | Link to the all comment feed: 29 | 30 | ```html 31 | Comment All Atom Feed 32 | ``` 33 | 34 | -------------------------------------------------------------------------------- /plugins/pelican_comment_system/identicon/README.md: -------------------------------------------------------------------------------- 1 | identicon.py: identicon python implementation. 2 | ============================================== 3 | :Author:Shin Adachi 4 | 5 | ## usage 6 | 7 | ### commandline 8 | 9 | python identicon.py [code] 10 | 11 | ### python 12 | 13 | import identicon 14 | identicon.render_identicon(code, size) 15 | 16 | Return a PIL Image class instance which have generated identicon image. 17 | `size` specifies patch size. Generated image size is 3 * `size`. -------------------------------------------------------------------------------- /plugins/pelican_comment_system/identicon/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/pelican_comment_system/identicon/__init__.py -------------------------------------------------------------------------------- /plugins/pelican_unity_webgl/LICENSE.txt: -------------------------------------------------------------------------------- 1 | Copyright (c) 2017 Mr.Page 2 | Permission is hereby granted, free of charge, to any person obtaininga copy 3 | of this software and associated documentation files (the "Software"), to deal 4 | in the Software without restriction, including without limitation the rights 5 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 6 | copies of the Software, and to permit persons to whom the Software is 7 | furnished to do so, subject to the following conditions: 8 | 9 | The above copyright notice and this permission notice shall be included in 10 | all copies or substantial portions of the Software. 11 | 12 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 13 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 14 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 15 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 16 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 17 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 18 | SOFTWARE. -------------------------------------------------------------------------------- /plugins/pelican_unity_webgl/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from .UnityGameDirective import register 4 | -------------------------------------------------------------------------------- /plugins/pelican_unity_webgl/config.py: -------------------------------------------------------------------------------- 1 | # unity webgl options 2 | 3 | DEFAULT_WIDTH = 960 4 | DEFAULT_HEIGHT = 600 5 | DEFAULT_ALIGN = 'center' 6 | 7 | # paths 8 | 9 | GAMES_ROOT_DIR = '/games' # directory with games 10 | TEMPLATE_PATH = '/games/utemplate' # template path 11 | -------------------------------------------------------------------------------- /plugins/pelican_unity_webgl/template.txt: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 8 |
9 | -------------------------------------------------------------------------------- /plugins/permalinks/README.md: -------------------------------------------------------------------------------- 1 | permalink 2 | ========= 3 | 4 | This plugin enables a kind of permalink which can be used to refer to a piece 5 | of content which is resistant to the file being moved or renamed. 6 | 7 | It does this by creating additional output html in `PERMALINK_PATH` 8 | (default permalinks/) which include redirect code to point user at original 9 | page. 10 | 11 | To work each page has to have an additional piece of metadata with the key 12 | `permalink_id` (configurable with `PERMALINK_ID_METADATA_KEY` 13 | which should remain static even through renames and should also 14 | be unique on the site. 15 | 16 | This can be generated automatically with the filetime_from_git module and 17 | the `GIT_FILETIME_GENERATE_PERMALINK` option. 18 | This should always be used with `GIT_FILETIME_FOLLOW` to ensure this 19 | persists across renames. 20 | 21 | 22 | Hacky redirects 23 | --------------- 24 | To make this work with things like github.io I'm forced to use HTML and 25 | Javascript redirects rather than HTTP redirects which is obviously suboptimal. 26 | -------------------------------------------------------------------------------- /plugins/permalinks/__init__.py: -------------------------------------------------------------------------------- 1 | from .permalinks import register 2 | -------------------------------------------------------------------------------- /plugins/photos/SourceCodePro-Bold.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/photos/SourceCodePro-Bold.otf -------------------------------------------------------------------------------- /plugins/photos/SourceCodePro-Regular.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/photos/SourceCodePro-Regular.otf -------------------------------------------------------------------------------- /plugins/photos/__init__.py: -------------------------------------------------------------------------------- 1 | from .photos import * 2 | -------------------------------------------------------------------------------- /plugins/photos/requirements.txt: -------------------------------------------------------------------------------- 1 | Pillow 2 | piexif>=1.0.5 3 | -------------------------------------------------------------------------------- /plugins/photos/test_data/agallery/best.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/photos/test_data/agallery/best.jpg -------------------------------------------------------------------------------- /plugins/photos/test_data/agallery/captions.txt: -------------------------------------------------------------------------------- 1 | best.jpg: Caption-best 2 | -------------------------------------------------------------------------------- /plugins/photos/test_data/agallery/exif.txt: -------------------------------------------------------------------------------- 1 | best.jpg: EXIF-best 2 | night.png: EXIF-night 3 | -------------------------------------------------------------------------------- /plugins/photos/test_data/agallery/night.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/photos/test_data/agallery/night.png -------------------------------------------------------------------------------- /plugins/photos/test_data/filename.md: -------------------------------------------------------------------------------- 1 | title: Test filename 2 | gallery: {filename}agallery 3 | image: {filename}agallery/best.jpg 4 | 5 | Here is my best photo, again. 6 | 7 | ![]({filename}agallery/best.jpg). 8 | -------------------------------------------------------------------------------- /plugins/photos/test_data/photo.md: -------------------------------------------------------------------------------- 1 | title: Test photo 2 | gallery: {photo}agallery 3 | image: {photo}agallery/best.jpg 4 | 5 | Here is my best photo, again. 6 | 7 | ![]({photo}agallery/best.jpg). 8 | -------------------------------------------------------------------------------- /plugins/plantuml/__init__.py: -------------------------------------------------------------------------------- 1 | from .plantuml_rst import * 2 | -------------------------------------------------------------------------------- /plugins/post_stats/__init__.py: -------------------------------------------------------------------------------- 1 | from .post_stats import * 2 | -------------------------------------------------------------------------------- /plugins/random_article/Readme.md: -------------------------------------------------------------------------------- 1 | Random Article Plugin For Pelican 2 | ======================== 3 | 4 | This plugin generates a html file which redirect to a random article 5 | using javascript's `window.location`. The generated html file is 6 | saved at `SITEURL`. 7 | 8 | Only published articles are listed to redirect. 9 | 10 | Usage 11 | ----- 12 | 13 | To use it you have to add in your config file the name of the file to use: 14 | 15 | RANDOM = 'random.html' 16 | 17 | Then in some template you add: 18 | 19 | random article 20 | -------------------------------------------------------------------------------- /plugins/random_article/__init__.py: -------------------------------------------------------------------------------- 1 | from .random_article import * 2 | -------------------------------------------------------------------------------- /plugins/read_more_link/Readme.md: -------------------------------------------------------------------------------- 1 | Read More Link 2 | === 3 | 4 | **Author**: Vuong Nguyen (http://vuongnguyen.com) 5 | 6 | This plugin inserts an inline "read more" or "continue" link into the last html element of the object summary. 7 | 8 | For more information, please visit: http://vuongnguyen.com/creating-inline-read-more-link-python-pelican-lxml.html 9 | 10 | Requirements 11 | --- 12 | 13 | lxml - for parsing html elements 14 | 15 | Settings 16 | --- 17 | # This settings indicates that you want to create summary at a certain length 18 | SUMMARY_MAX_LENGTH = 50 19 | 20 | # This indicates what goes inside the read more link 21 | READ_MORE_LINK = None (ex: 'continue') 22 | 23 | # This is the format of the read more link 24 | READ_MORE_LINK_FORMAT = '{text}' 25 | 26 | 27 | -------------------------------------------------------------------------------- /plugins/read_more_link/__init__.py: -------------------------------------------------------------------------------- 1 | from .read_more_link import * -------------------------------------------------------------------------------- /plugins/read_more_link/requirements.txt: -------------------------------------------------------------------------------- 1 | lxml>=3.2.1 -------------------------------------------------------------------------------- /plugins/related_posts/__init__.py: -------------------------------------------------------------------------------- 1 | from .related_posts import * 2 | -------------------------------------------------------------------------------- /plugins/render_math/__init__.py: -------------------------------------------------------------------------------- 1 | from .math import * 2 | -------------------------------------------------------------------------------- /plugins/representative_image/__init__.py: -------------------------------------------------------------------------------- 1 | from .representative_image import * 2 | -------------------------------------------------------------------------------- /plugins/rmd_reader/__init__.py: -------------------------------------------------------------------------------- 1 | from .rmd_reader import * 2 | -------------------------------------------------------------------------------- /plugins/section_number/Readme.md: -------------------------------------------------------------------------------- 1 | Section Number 2 | -------------- 3 | 4 | This plugin adds section numbers to an article's context, in the form of `X.X.X`. Sections are indicated via Markdown headers, which appear as `

` in the generated HTML. 5 | 6 | 7 | # Settings 8 | 9 | By default, up to three section levels will be prefixed with numbers. You can customize this value by defining `SECTION_NUMBER_MAX` in your settings file: 10 | 11 | SECTION_NUMBER_MAX = 5 12 | 13 | 14 | # Caveat 15 | 16 | The first section in the article will be marked as the top section level. Namely, if `

` is the first section encountered, the plugin assumes that no `

` or `

` sections will be present. Otherwise an exception may result. 17 | 18 | 19 | # Example 20 | 21 | The following Markdown content... 22 | 23 | # section 24 | blabla 25 | ## subsection 26 | blabla 27 | ## subsection 28 | blabla 29 | # section 30 | blabla 31 | 32 | ... will be rendered as: 33 | 34 | >#1 section 35 | >blabla 36 | >##1.1 subsection 37 | >blabla 38 | >##1.2 subsection 39 | >blabla 40 | >#2 section 41 | >blabla 42 | -------------------------------------------------------------------------------- /plugins/section_number/__init__.py: -------------------------------------------------------------------------------- 1 | from .section_number import * -------------------------------------------------------------------------------- /plugins/series/__init__.py: -------------------------------------------------------------------------------- 1 | from .series import * 2 | -------------------------------------------------------------------------------- /plugins/share_post/__init__.py: -------------------------------------------------------------------------------- 1 | from .share_post import * 2 | -------------------------------------------------------------------------------- /plugins/show_source/__init__.py: -------------------------------------------------------------------------------- 1 | from .show_source import * 2 | -------------------------------------------------------------------------------- /plugins/simple_footnotes/README.md: -------------------------------------------------------------------------------- 1 | Simple Footnotes 2 | ================ 3 | 4 | A Pelican plugin to add footnotes to blog posts. 5 | 6 | When writing a post or page, add a footnote like this: 7 | 8 | Here's my written text[ref]and here is a footnote[/ref]. 9 | 10 | This will appear as, roughly: 11 | 12 | Here's my written text1 13 | 14 | 1. and here is a footnote ↩ 15 | 16 | Inspired by Andrew Nacin's [Simple Footnotes WordPress plugin](http://wordpress.org/plugins/simple-footnotes/). 17 | 18 | Requirements 19 | ============ 20 | 21 | Needs html5lib, so you'll want to `pip install html5lib` before running. 22 | 23 | Should work with any content format (ReST, Markdown, whatever), because 24 | it looks for the `[ref]` and `[/ref]` once the conversion to HTML has happened. 25 | 26 | Stuart Langridge, http://www.kryogenix.org/, February 2014. 27 | -------------------------------------------------------------------------------- /plugins/simple_footnotes/__init__.py: -------------------------------------------------------------------------------- 1 | from .simple_footnotes import * 2 | -------------------------------------------------------------------------------- /plugins/sitemap/__init__.py: -------------------------------------------------------------------------------- 1 | from .sitemap import * -------------------------------------------------------------------------------- /plugins/slim/__init__.py: -------------------------------------------------------------------------------- 1 | from .slim import * 2 | -------------------------------------------------------------------------------- /plugins/static_comments/Readme.md: -------------------------------------------------------------------------------- 1 | Static comments 2 | --------------- 3 | 4 | This plugin allows you to add static comments to an article. By default the 5 | plugin looks for the comments of each article in a local file named 6 | ``comments/{slug}.md``, where ``{slug}`` is the value of the slug tag for the 7 | article. The comments file should be formatted using markdown. 8 | 9 | Set the ``STATIC_COMMENTS`` parameter to True to enable the plugin. Default is 10 | False. 11 | 12 | Set the ``STATIC_COMMENTS_DIR`` parameter to the directory where the comments 13 | are located. Default is ``comments``. 14 | 15 | On the template side, you just have to add a section for the comments to your 16 | ``article.html``, as in this example:: 17 | 18 | {% if STATIC_COMMENTS %} 19 |
20 |

Comments!

21 | {{ article.metadata.static_comments }} 22 |
23 | {% endif %} 24 | 25 | Here is an example of usage: 26 | 27 | -------------------------------------------------------------------------------- /plugins/static_comments/__init__.py: -------------------------------------------------------------------------------- 1 | from .static_comments import * 2 | -------------------------------------------------------------------------------- /plugins/sub_parts/__init__.py: -------------------------------------------------------------------------------- 1 | from .sub_parts import * 2 | -------------------------------------------------------------------------------- /plugins/sub_parts/test_data/noparent.md: -------------------------------------------------------------------------------- 1 | title: No parent 2 | tags: atag 3 | 4 | Normal article. 5 | -------------------------------------------------------------------------------- /plugins/sub_parts/test_data/parent--implicit.md: -------------------------------------------------------------------------------- 1 | title: Implicit sub-article 2 | tags: atag 3 | 4 | Sub-article based on filename as implicit slug. 5 | -------------------------------------------------------------------------------- /plugins/sub_parts/test_data/parent-explicit.md: -------------------------------------------------------------------------------- 1 | title: Explicit sub-article 2 | tags: atag 3 | slug: parent--explicit 4 | 5 | Explicit sub-article, based on explicit slug. 6 | -------------------------------------------------------------------------------- /plugins/sub_parts/test_data/parent.md: -------------------------------------------------------------------------------- 1 | title: Parent 2 | tags: atag 3 | 4 | Parent article with two sub-articles. 5 | -------------------------------------------------------------------------------- /plugins/subcategory/__init__.py: -------------------------------------------------------------------------------- 1 | from .subcategory import * 2 | -------------------------------------------------------------------------------- /plugins/summary/__init__.py: -------------------------------------------------------------------------------- 1 | from .summary import * 2 | -------------------------------------------------------------------------------- /plugins/tag_cloud/__init__.py: -------------------------------------------------------------------------------- 1 | from .tag_cloud import * 2 | 3 | -------------------------------------------------------------------------------- /plugins/tag_cloud/test_data/article_1.md: -------------------------------------------------------------------------------- 1 | Title: Article1 2 | tags: fun, pelican, plugins 3 | 4 | content, yeah! -------------------------------------------------------------------------------- /plugins/tag_cloud/test_data/article_2.md: -------------------------------------------------------------------------------- 1 | Title: Article2 2 | tags: pelican, plugins, python 3 | 4 | content2, yeah! 5 | 6 | -------------------------------------------------------------------------------- /plugins/tag_cloud/test_data/article_3.md: -------------------------------------------------------------------------------- 1 | Title: Article3 2 | tags: pelican, plugins 3 | 4 | content3, yeah! 5 | 6 | -------------------------------------------------------------------------------- /plugins/tag_cloud/test_data/article_4.md: -------------------------------------------------------------------------------- 1 | Title: Article4 2 | tags: pelican, fun 3 | 4 | content4, yeah! 5 | 6 | -------------------------------------------------------------------------------- /plugins/tag_cloud/test_data/article_5.md: -------------------------------------------------------------------------------- 1 | Title: Article5 2 | tags: plugins, pelican, fun 3 | 4 | content5, yeah! 5 | 6 | -------------------------------------------------------------------------------- /plugins/test_data/Readme.rst: -------------------------------------------------------------------------------- 1 | Test Data 2 | --------- 3 | 4 | Place tests for your plugin here. ``test_data`` folder contains following 5 | common data for your tests, if you need them. 6 | 7 | =============== =========================== 8 | File/Folder Description 9 | =============== =========================== 10 | content A sample content folder 11 | themes Default themes from Pelican 12 | pelican.conf.py A sample settings file 13 | =============== =========================== 14 | -------------------------------------------------------------------------------- /plugins/test_data/content/2012-11-30_filename-metadata.rst: -------------------------------------------------------------------------------- 1 | FILENAME_METADATA example 2 | ######################### 3 | 4 | Some cool stuff! 5 | -------------------------------------------------------------------------------- /plugins/test_data/content/another_super_article-fr.rst: -------------------------------------------------------------------------------- 1 | Trop bien ! 2 | ########### 3 | 4 | :lang: fr 5 | :slug: oh-yeah 6 | 7 | Et voila du contenu en français 8 | -------------------------------------------------------------------------------- /plugins/test_data/content/another_super_article.rst: -------------------------------------------------------------------------------- 1 | Oh yeah ! 2 | ######### 3 | 4 | :tags: oh, bar, yeah 5 | :date: 2010-10-20 10:14 6 | :category: bar 7 | :author: Alexis Métaireau 8 | :slug: oh-yeah 9 | :license: WTFPL 10 | 11 | Why not ? 12 | ========= 13 | 14 | After all, why not ? It's pretty simple to do it, and it will allow me to write my blogposts in rst ! 15 | YEAH ! 16 | 17 | .. image:: |filename|/pictures/Sushi.jpg 18 | :height: 450 px 19 | :width: 600 px 20 | :alt: alternate text 21 | -------------------------------------------------------------------------------- /plugins/test_data/content/article2-fr.rst: -------------------------------------------------------------------------------- 1 | Deuxième article 2 | ################ 3 | 4 | :tags: foo, bar, baz 5 | :date: 2012-02-29 6 | :lang: fr 7 | :slug: second-article 8 | 9 | Ceci est un article, en français. 10 | -------------------------------------------------------------------------------- /plugins/test_data/content/article2.rst: -------------------------------------------------------------------------------- 1 | Second article 2 | ############## 3 | 4 | :tags: foo, bar, baz 5 | :date: 2012-02-29 6 | :lang: en 7 | :slug: second-article 8 | 9 | This is some article, in english 10 | -------------------------------------------------------------------------------- /plugins/test_data/content/cat1/article1.rst: -------------------------------------------------------------------------------- 1 | Article 1 2 | ######### 3 | 4 | :date: 2011-02-17 5 | :yeah: oh yeah ! 6 | 7 | Article 1 8 | -------------------------------------------------------------------------------- /plugins/test_data/content/cat1/article2.rst: -------------------------------------------------------------------------------- 1 | Article 2 2 | ######### 3 | 4 | :date: 2011-02-17 5 | 6 | Article 2 7 | -------------------------------------------------------------------------------- /plugins/test_data/content/cat1/article3.rst: -------------------------------------------------------------------------------- 1 | Article 3 2 | ######### 3 | 4 | :date: 2011-02-17 5 | 6 | Article 3 7 | -------------------------------------------------------------------------------- /plugins/test_data/content/cat1/markdown-article.md: -------------------------------------------------------------------------------- 1 | Title: A markdown powered article 2 | Date: 2011-04-20 3 | 4 | You're mutually oblivious. 5 | 6 | [a root-relative link to unbelievable](|filename|/unbelievable.rst) 7 | [a file-relative link to unbelievable](|filename|../unbelievable.rst) 8 | -------------------------------------------------------------------------------- /plugins/test_data/content/draft_article.rst: -------------------------------------------------------------------------------- 1 | A draft article 2 | ############### 3 | 4 | :status: draft 5 | 6 | This is a draft article, it should live under the /drafts/ folder and not be 7 | listed anywhere else. 8 | -------------------------------------------------------------------------------- /plugins/test_data/content/extra/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: /static/pictures 3 | -------------------------------------------------------------------------------- /plugins/test_data/content/pages/hidden_page.rst: -------------------------------------------------------------------------------- 1 | This is a test hidden page 2 | ########################## 3 | 4 | :category: test 5 | :status: hidden 6 | 7 | This is great for things like error(404) pages 8 | Anyone can see this page but it's not linked to anywhere! 9 | 10 | -------------------------------------------------------------------------------- /plugins/test_data/content/pages/jinja2_template.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block content %} 3 | 4 | Some text 5 | 6 | {% endblock %} 7 | -------------------------------------------------------------------------------- /plugins/test_data/content/pages/override_url_saveas.rst: -------------------------------------------------------------------------------- 1 | Override url/save_as 2 | #################### 3 | 4 | :date: 2012-12-07 5 | :url: override/ 6 | :save_as: override/index.html 7 | 8 | Test page which overrides save_as and url so that this page will be generated 9 | at a custom location. 10 | -------------------------------------------------------------------------------- /plugins/test_data/content/pages/test_page.rst: -------------------------------------------------------------------------------- 1 | This is a test page 2 | ################### 3 | 4 | :category: test 5 | 6 | Just an image. 7 | 8 | .. image:: |filename|/pictures/Fat_Cat.jpg 9 | :height: 450 px 10 | :width: 600 px 11 | :alt: alternate text 12 | 13 | -------------------------------------------------------------------------------- /plugins/test_data/content/pictures/Fat_Cat.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/test_data/content/pictures/Fat_Cat.jpg -------------------------------------------------------------------------------- /plugins/test_data/content/pictures/Sushi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/test_data/content/pictures/Sushi.jpg -------------------------------------------------------------------------------- /plugins/test_data/content/pictures/Sushi_Macro.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/test_data/content/pictures/Sushi_Macro.jpg -------------------------------------------------------------------------------- /plugins/test_data/content/super_article.rst: -------------------------------------------------------------------------------- 1 | This is a super article ! 2 | ######################### 3 | 4 | :tags: foo, bar, foobar 5 | :date: 2010-12-02 10:14 6 | :category: yeah 7 | :author: Alexis Métaireau 8 | :summary: 9 | Multi-line metadata should be supported 10 | as well as **inline markup**. 11 | 12 | Some content here ! 13 | 14 | This is a simple title 15 | ====================== 16 | 17 | And here comes the cool stuff_. 18 | 19 | .. image:: |filename|/pictures/Sushi.jpg 20 | :height: 450 px 21 | :width: 600 px 22 | :alt: alternate text 23 | 24 | .. image:: |filename|/pictures/Sushi_Macro.jpg 25 | :height: 450 px 26 | :width: 600 px 27 | :alt: alternate text 28 | 29 | :: 30 | 31 | >>> from ipdb import set_trace 32 | >>> set_trace() 33 | 34 | → And now try with some utf8 hell: ééé 35 | 36 | .. _stuff: http://books.couchdb.org/relax/design-documents/views 37 | -------------------------------------------------------------------------------- /plugins/test_data/content/unbelievable.rst: -------------------------------------------------------------------------------- 1 | Unbelievable ! 2 | ############## 3 | 4 | :date: 2010-10-15 20:30 5 | 6 | Or completely awesome. Depends the needs. 7 | 8 | `a root-relative link to markdown-article <|filename|/cat1/markdown-article.md>`_ 9 | `a file-relative link to markdown-article <|filename|cat1/markdown-article.md>`_ 10 | -------------------------------------------------------------------------------- /plugins/test_data/content/unwanted_file: -------------------------------------------------------------------------------- 1 | not to be parsed 2 | -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/static/css/typogrify.css: -------------------------------------------------------------------------------- 1 | .caps {font-size:.92em;} 2 | .amp {color:#666; font-size:1.05em;font-family:"Warnock Pro", "Goudy Old Style","Palatino","Book Antiqua",serif; font-style:italic;} 3 | .dquo {margin-left:-.38em;} 4 | -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/static/css/wide.css: -------------------------------------------------------------------------------- 1 | @import url("main.css"); 2 | 3 | body { 4 | font:1.3em/1.3 "Hoefler Text","Georgia",Georgia,serif,sans-serif; 5 | } 6 | 7 | .post-info{ 8 | display: none; 9 | } 10 | 11 | #banner nav { 12 | display: none; 13 | -moz-border-radius: 0px; 14 | margin-bottom: 20px; 15 | overflow: hidden; 16 | font-size: 1em; 17 | background: #F5F4EF; 18 | } 19 | 20 | #banner nav ul{ 21 | padding-right: 50px; 22 | } 23 | 24 | #banner nav li{ 25 | float: right; 26 | color: #000; 27 | } 28 | 29 | #banner nav li a { 30 | color: #000; 31 | } 32 | 33 | #banner h1 { 34 | margin-bottom: -18px; 35 | } 36 | 37 | #featured, #extras { 38 | padding: 50px; 39 | } 40 | 41 | #featured { 42 | padding-top: 20px; 43 | } 44 | 45 | #extras { 46 | padding-top: 0px; 47 | padding-bottom: 0px; 48 | } 49 | -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/static/images/icons/aboutme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/test_data/themes/notmyidea/static/images/icons/aboutme.png -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/static/images/icons/bitbucket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/test_data/themes/notmyidea/static/images/icons/bitbucket.png -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/static/images/icons/delicious.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/test_data/themes/notmyidea/static/images/icons/delicious.png -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/static/images/icons/facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/test_data/themes/notmyidea/static/images/icons/facebook.png -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/static/images/icons/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/test_data/themes/notmyidea/static/images/icons/github.png -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/static/images/icons/gitorious.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/test_data/themes/notmyidea/static/images/icons/gitorious.png -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/static/images/icons/gittip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/test_data/themes/notmyidea/static/images/icons/gittip.png -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/static/images/icons/google-groups.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/test_data/themes/notmyidea/static/images/icons/google-groups.png -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/static/images/icons/google-plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/test_data/themes/notmyidea/static/images/icons/google-plus.png -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/static/images/icons/hackernews.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/test_data/themes/notmyidea/static/images/icons/hackernews.png -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/static/images/icons/lastfm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/test_data/themes/notmyidea/static/images/icons/lastfm.png -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/static/images/icons/linkedin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/test_data/themes/notmyidea/static/images/icons/linkedin.png -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/static/images/icons/reddit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/test_data/themes/notmyidea/static/images/icons/reddit.png -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/static/images/icons/rss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/test_data/themes/notmyidea/static/images/icons/rss.png -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/static/images/icons/slideshare.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/test_data/themes/notmyidea/static/images/icons/slideshare.png -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/static/images/icons/speakerdeck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/test_data/themes/notmyidea/static/images/icons/speakerdeck.png -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/static/images/icons/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/test_data/themes/notmyidea/static/images/icons/twitter.png -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/static/images/icons/vimeo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/test_data/themes/notmyidea/static/images/icons/vimeo.png -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/static/images/icons/youtube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/test_data/themes/notmyidea/static/images/icons/youtube.png -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/templates/analytics.html: -------------------------------------------------------------------------------- 1 | {% if GOOGLE_ANALYTICS %} 2 | 12 | {% endif %} -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/templates/archives.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block content %} 3 |
4 |

Archives for {{ SITENAME }}

5 | 6 |
7 | {% for article in dates %} 8 |
{{ article.locale_date }}
9 |
{{ article.title }}
10 | {% endfor %} 11 |
12 |
13 | {% endblock %} 14 | -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/templates/article_infos.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | {{ article.locale_date }} 4 | 5 | 6 | {% if article.author %} 7 |
8 | By {{ article.author }} 9 |
10 | {% endif %} 11 |

In {{ article.category }}. {% if PDF_PROCESSOR %}get the pdf{% endif %}

12 | {% include 'taglist.html' %} 13 | {% import 'translations.html' as translations with context %} 14 | {{ translations.translations_for(article) }} 15 |
16 | -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/templates/author.html: -------------------------------------------------------------------------------- 1 | {% extends "index.html" %} 2 | {% block title %}{{ SITENAME }} - {{ author }}{% endblock %} 3 | -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/templates/authors.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/test_data/themes/notmyidea/templates/authors.html -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/templates/category.html: -------------------------------------------------------------------------------- 1 | {% extends "index.html" %} 2 | {% block title %}{{ SITENAME }} - {{ category }}{% endblock %} 3 | -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/templates/comments.html: -------------------------------------------------------------------------------- 1 | {% if DISQUS_SITENAME %}

There are comments.

{% endif %} 2 | -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/templates/disqus_script.html: -------------------------------------------------------------------------------- 1 | {% if DISQUS_SITENAME %} 2 | 11 | {% endif %} 12 | -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/templates/github.html: -------------------------------------------------------------------------------- 1 | {% if GITHUB_URL %} 2 | 3 | {% if GITHUB_POSITION != "left" %} 4 | Fork me on GitHub 5 | {% else %} 6 | Fork me on GitHub 7 | {% endif %} 8 | 9 | {% endif %} 10 | -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/templates/page.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block title %}{{ page.title }}{% endblock %} 3 | {% block content %} 4 |
5 |

{{ page.title }}

6 | {% import 'translations.html' as translations with context %} 7 | {{ translations.translations_for(page) }} 8 | {% if PDF_PROCESSOR %}get 9 | the pdf{% endif %} 10 | {{ page.content }} 11 |
12 | {% endblock %} 13 | -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/templates/piwik.html: -------------------------------------------------------------------------------- 1 | {% if PIWIK_URL and PIWIK_SITE_ID %} 2 | 16 | {% endif %} -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/templates/tag.html: -------------------------------------------------------------------------------- 1 | {% extends "index.html" %} 2 | {% block title %}{{ SITENAME }} - {{ tag }}{% endblock %} 3 | -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/templates/taglist.html: -------------------------------------------------------------------------------- 1 | {% if article.tags %}

tags: {% for tag in article.tags %}{{ tag }}{% endfor %}

{% endif %} 2 | {% if PDF_PROCESSOR %}

get the pdf

{% endif %} 3 | -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/templates/translations.html: -------------------------------------------------------------------------------- 1 | {% macro translations_for(article) %} 2 | {% if article.translations %} 3 | Translations: 4 | {% for translation in article.translations %} 5 | {{ translation.lang }} 6 | {% endfor %} 7 | {% endif %} 8 | {% endmacro %} 9 | -------------------------------------------------------------------------------- /plugins/test_data/themes/notmyidea/templates/twitter.html: -------------------------------------------------------------------------------- 1 | {% if TWITTER_USERNAME %} 2 | 3 | {% endif %} -------------------------------------------------------------------------------- /plugins/test_data/themes/simple/templates/archives.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block content %} 3 |

Archives for {{ SITENAME }}

4 | 5 |
6 | {% for article in dates %} 7 |
{{ article.locale_date }}
8 |
{{ article.title }}
9 | {% endfor %} 10 |
11 | {% endblock %} 12 | -------------------------------------------------------------------------------- /plugins/test_data/themes/simple/templates/article.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block content %} 3 |
4 |
5 |

6 | {{ article.title }}

8 | {% import 'translations.html' as translations with context %} 9 | {{ translations.translations_for(article) }} 10 |
11 |
12 | 13 | {{ article.locale_date }} 14 | 15 | {% if article.author %} 16 |
17 | By {{ article.author }} 18 |
19 | {% endif %} 20 |
21 |
22 | {{ article.content }} 23 |
24 |
25 | {% endblock %} 26 | -------------------------------------------------------------------------------- /plugins/test_data/themes/simple/templates/author.html: -------------------------------------------------------------------------------- 1 | {% extends "index.html" %} 2 | 3 | {% block title %}{{ SITENAME }} - Articles by {{ author }}{% endblock %} 4 | {% block content_title %} 5 |

Articles by {{ author }}

6 | {% endblock %} 7 | 8 | -------------------------------------------------------------------------------- /plugins/test_data/themes/simple/templates/categories.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block content %} 3 |
    4 | {% for category, articles in categories %} 5 |
  • {{ category }}
  • 6 | {% endfor %} 7 |
8 | {% endblock %} 9 | -------------------------------------------------------------------------------- /plugins/test_data/themes/simple/templates/category.html: -------------------------------------------------------------------------------- 1 | {% extends "index.html" %} 2 | {% block content_title %} 3 |

Articles in the {{ category }} category

4 | {% endblock %} 5 | 6 | -------------------------------------------------------------------------------- /plugins/test_data/themes/simple/templates/gosquared.html: -------------------------------------------------------------------------------- 1 | {% if GOSQUARED_SITENAME %} 2 | 14 | {% endif %} 15 | -------------------------------------------------------------------------------- /plugins/test_data/themes/simple/templates/index.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block content %} 3 |
4 | {% block content_title %} 5 |

All articles

6 | {% endblock %} 7 | 8 |
    9 | {% for article in articles_page.object_list %} 10 |
  1. 18 | {% endfor %} 19 |
20 | {% include 'pagination.html' %} 21 |
22 | {% endblock content %} 23 | -------------------------------------------------------------------------------- /plugins/test_data/themes/simple/templates/page.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block title %}{{ page.title }}{%endblock%} 3 | {% block content %} 4 |

{{ page.title }}

5 | {% import 'translations.html' as translations with context %} 6 | {{ translations.translations_for(page) }} 7 | 8 | {{ page.content }} 9 | {% endblock %} 10 | -------------------------------------------------------------------------------- /plugins/test_data/themes/simple/templates/pagination.html: -------------------------------------------------------------------------------- 1 | {% if DEFAULT_PAGINATION %} 2 |

3 | {% if articles_page.has_previous() %} 4 | {% if articles_page.previous_page_number() == 1 %} 5 | « 6 | {% else %} 7 | « 8 | {% endif %} 9 | {% endif %} 10 | Page {{ articles_page.number }} / {{ articles_paginator.num_pages }} 11 | {% if articles_page.has_next() %} 12 | » 13 | {% endif %} 14 |

15 | {% endif %} 16 | -------------------------------------------------------------------------------- /plugins/test_data/themes/simple/templates/tag.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/test_data/themes/simple/templates/tag.html -------------------------------------------------------------------------------- /plugins/test_data/themes/simple/templates/tags.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/test_data/themes/simple/templates/tags.html -------------------------------------------------------------------------------- /plugins/test_data/themes/simple/templates/translations.html: -------------------------------------------------------------------------------- 1 | {% macro translations_for(article) %} 2 | {% if article.translations %} 3 | Translations: 4 | {% for translation in article.translations %} 5 | {{ translation.lang }} 6 | {% endfor %} 7 | {% endif %} 8 | {% endmacro %} 9 | 10 | -------------------------------------------------------------------------------- /plugins/textile_reader/Readme.textile: -------------------------------------------------------------------------------- 1 | h1. Textile Reader Plugin for Pelican 2 | 3 | p. This plugin adds support for "Textile markup":https://github.com/netcarver/textile via the "textile egg on pypi":https://pypi.python.org/pypi/textile . 4 | 5 | p. Input files are similar in format to Markdown files, in that they start with the post metadata in "Key: value" pairs, one per line. However, the metadata is ended by a line containing only "----", and then all that follows is the body content. If the separator line is missing then the whole file is assumed to be content. 6 | 7 | h2. Example Input File 8 | 9 |
Title: An Example Textile-formatted Input for Pelican
10 | Date: 2013-08-12
11 | Category: Plugins
12 | Tags: textile, pelican
13 | Author: Joey Coleman
14 | ----
15 | p. Lorem ipsum dolor sit amet...
16 | 
17 | -------------------------------------------------------------------------------- /plugins/textile_reader/__init__.py: -------------------------------------------------------------------------------- 1 | from .textile_reader import * 2 | -------------------------------------------------------------------------------- /plugins/thumbnailer/__init__.py: -------------------------------------------------------------------------------- 1 | from .thumbnailer import * -------------------------------------------------------------------------------- /plugins/thumbnailer/test_data/expected_exact.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/thumbnailer/test_data/expected_exact.jpg -------------------------------------------------------------------------------- /plugins/thumbnailer/test_data/expected_height.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/thumbnailer/test_data/expected_height.jpg -------------------------------------------------------------------------------- /plugins/thumbnailer/test_data/expected_square.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/thumbnailer/test_data/expected_square.jpg -------------------------------------------------------------------------------- /plugins/thumbnailer/test_data/expected_width.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/thumbnailer/test_data/expected_width.jpg -------------------------------------------------------------------------------- /plugins/thumbnailer/test_data/sample_image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/thumbnailer/test_data/sample_image.jpg -------------------------------------------------------------------------------- /plugins/thumbnailer/test_data/subdir/sample_image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/plugins/thumbnailer/test_data/subdir/sample_image.jpg -------------------------------------------------------------------------------- /plugins/tipue_search/__init__.py: -------------------------------------------------------------------------------- 1 | from .tipue_search import * 2 | -------------------------------------------------------------------------------- /plugins/touch/README.rst: -------------------------------------------------------------------------------- 1 | Touch plugin 2 | ############ 3 | 4 | A simple plugin doing a touch on your generated files using the date metadata 5 | from the content. 6 | 7 | This helps, into other things, to have the web server gently manage the cache. 8 | -------------------------------------------------------------------------------- /plugins/touch/__init__.py: -------------------------------------------------------------------------------- 1 | from pelican import signals 2 | 3 | import logging 4 | import os 5 | import time 6 | 7 | 8 | logger = logging.getLogger(__name__) 9 | 10 | 11 | def set_file_utime(path, datetime): 12 | mtime = time.mktime(datetime.timetuple()) 13 | logger.info('touching %s', path) 14 | os.utime(path, (mtime, mtime)) 15 | 16 | 17 | def touch_file(path, context): 18 | content = context.get('article', context.get('page')) 19 | page = context.get('articles_page') 20 | dates = context.get('dates') 21 | 22 | if content and hasattr(content, 'date'): 23 | set_file_utime(path, content.date) 24 | elif page: 25 | set_file_utime(path, max(x.date for x in page.object_list)) 26 | elif dates: 27 | set_file_utime(path, max(x.date for x in dates)) 28 | 29 | 30 | def touch_feed(path, context, feed): 31 | set_file_utime(path, max(x['pubdate'] for x in feed.items)) 32 | 33 | 34 | def register(): 35 | signals.content_written.connect(touch_file) 36 | signals.feed_written.connect(touch_feed) 37 | -------------------------------------------------------------------------------- /plugins/twitter_bootstrap_rst_directives/__init__.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- 3 | 4 | from .bootstrap_rst_directives import * 5 | -------------------------------------------------------------------------------- /plugins/txt2tags_reader/LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /plugins/txt2tags_reader/README.md: -------------------------------------------------------------------------------- 1 | # txt2tags_reader 2 | A [txt2tags] reader plugin for the [Pelican static site generator](http://docs.getpelican.com/en/latest/). 3 | 4 | Requirements 5 | ------------ 6 | [txt2tags] in $PATH 7 | 8 | Installation 9 | ------------ 10 | Instructions on installing pelican plugins can be found in the [pelican plugin manual](https://github.com/getpelican/pelican-plugins/blob/master/Readme.rst). 11 | 12 | [txt2tags]:http://txt2tags.org/ 13 | -------------------------------------------------------------------------------- /plugins/txt2tags_reader/__init__.py: -------------------------------------------------------------------------------- 1 | from .txt2tags_reader import * 2 | -------------------------------------------------------------------------------- /plugins/video_privacy_enhancer/__init__.py: -------------------------------------------------------------------------------- 1 | from .video_privacy_enhancer import * 2 | -------------------------------------------------------------------------------- /plugins/w3c_validate/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from .wc3_validate import * 3 | -------------------------------------------------------------------------------- /plugins/yuicompressor/.gitignore: -------------------------------------------------------------------------------- 1 | *.pyc 2 | -------------------------------------------------------------------------------- /plugins/yuicompressor/README.md: -------------------------------------------------------------------------------- 1 | # YUI Compressor Plugin 2 | 3 | A pelican plugin which minify through yui compressor CSS/JS file on building step. 4 | 5 | # Installation 6 | 7 | In order to work, JRE should be already installed. 8 | Please add `pip install yuicompressor` 9 | 10 | More info : (https://github.com/yui/yuicompressor) 11 | 12 | # Instructions 13 | 14 | Add `yuicompressor` to `pelicanconf.py` after install : 15 | `PLUGINS = ['yuicompressor']` 16 | 17 | # Licence 18 | 19 | GNU AFFERO GENERAL PUBLIC LICENSE Version 3 20 | -------------------------------------------------------------------------------- /plugins/yuicompressor/__init__.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | from .yuicompressor import * 3 | -------------------------------------------------------------------------------- /plugins/yuicompressor/yuicompressor.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | 3 | from pelican import signals 4 | from subprocess import call 5 | import logging 6 | import os 7 | 8 | logger = logging.getLogger(__name__) 9 | 10 | # Display command output on DEBUG and TRACE 11 | SHOW_OUTPUT = logger.getEffectiveLevel() <= logging.DEBUG 12 | 13 | """ 14 | Minify CSS and JS files in output path 15 | with Yuicompressor from Yahoo 16 | Required : pip install yuicompressor 17 | """ 18 | 19 | def minify(pelican): 20 | """ 21 | Minify CSS and JS with YUI Compressor 22 | :param pelican: The Pelican instance 23 | """ 24 | for dirpath, _, filenames in os.walk(pelican.settings['OUTPUT_PATH']): 25 | for name in filenames: 26 | if os.path.splitext(name)[1] in ('.css','.js'): 27 | filepath = os.path.join(dirpath, name) 28 | logger.info('minifiy %s', filepath) 29 | verbose = '-v' if SHOW_OUTPUT else '' 30 | call("yuicompressor {} --charset utf-8 {} -o {}".format( 31 | verbose, filepath, filepath), shell=True) 32 | 33 | def register(): 34 | signals.finalized.connect(minify) 35 | -------------------------------------------------------------------------------- /publishconf.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | # -*- coding: utf-8 -*- # 3 | from __future__ import unicode_literals 4 | 5 | # This file is only used if you use `make publish` or 6 | # explicitly specify it as your config file. 7 | 8 | import os 9 | import sys 10 | sys.path.append(os.curdir) 11 | from pelicanconf import * 12 | 13 | SITEURL = 'http://cs.mipt.ru/algo' 14 | RELATIVE_URLS = False 15 | 16 | FEED_ALL_ATOM = None 17 | CATEGORY_FEED_ATOM = None 18 | 19 | DELETE_OUTPUT_DIRECTORY = True 20 | 21 | # Following items are often useful when publishing 22 | 23 | #DISQUS_SITENAME = "" 24 | #GOOGLE_ANALYTICS = "" 25 | 26 | MENUITEMS = (('Главная', SITEURL), ('Оценки', 'http://cs.mipt.ru/gertsev/files/marks.html')) 27 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | pelican 2 | beautifulsoup4 3 | pelican-youtube -------------------------------------------------------------------------------- /themes/the-theme/static/css/typogrify.css: -------------------------------------------------------------------------------- 1 | .caps {font-size:.92em;} 2 | .amp {color:#666; font-size:1.05em;font-family:"Warnock Pro", "Goudy Old Style","Palatino","Book Antiqua",serif; font-style:italic;} 3 | .dquo {margin-left:-.38em;} 4 | -------------------------------------------------------------------------------- /themes/the-theme/static/css/wide.css: -------------------------------------------------------------------------------- 1 | @import url("main.css"); 2 | 3 | body { 4 | font:1.3em/1.3 "Hoefler Text","Georgia",Georgia,serif,sans-serif; 5 | } 6 | 7 | .post-info{ 8 | display: none; 9 | } 10 | 11 | #banner nav { 12 | display: none; 13 | -moz-border-radius: 0px; 14 | margin-bottom: 20px; 15 | overflow: hidden; 16 | font-size: 1em; 17 | background: #F5F4EF; 18 | } 19 | 20 | #banner nav ul{ 21 | padding-right: 50px; 22 | } 23 | 24 | #banner nav li{ 25 | float: right; 26 | color: #000; 27 | } 28 | 29 | #banner nav li a { 30 | color: #000; 31 | } 32 | 33 | #banner h1 { 34 | margin-bottom: -18px; 35 | } 36 | 37 | #featured, #extras { 38 | padding: 50px; 39 | } 40 | 41 | #featured { 42 | padding-top: 20px; 43 | } 44 | 45 | #extras { 46 | padding-top: 0px; 47 | padding-bottom: 0px; 48 | } 49 | -------------------------------------------------------------------------------- /themes/the-theme/static/fonts/cyrillic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/themes/the-theme/static/fonts/cyrillic.woff2 -------------------------------------------------------------------------------- /themes/the-theme/static/fonts/latin-ext.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/themes/the-theme/static/fonts/latin-ext.woff2 -------------------------------------------------------------------------------- /themes/the-theme/static/fonts/latin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/themes/the-theme/static/fonts/latin.woff2 -------------------------------------------------------------------------------- /themes/the-theme/static/images/icons/aboutme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/themes/the-theme/static/images/icons/aboutme.png -------------------------------------------------------------------------------- /themes/the-theme/static/images/icons/bitbucket.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/themes/the-theme/static/images/icons/bitbucket.png -------------------------------------------------------------------------------- /themes/the-theme/static/images/icons/delicious.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/themes/the-theme/static/images/icons/delicious.png -------------------------------------------------------------------------------- /themes/the-theme/static/images/icons/facebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/themes/the-theme/static/images/icons/facebook.png -------------------------------------------------------------------------------- /themes/the-theme/static/images/icons/github.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/themes/the-theme/static/images/icons/github.png -------------------------------------------------------------------------------- /themes/the-theme/static/images/icons/gitorious.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/themes/the-theme/static/images/icons/gitorious.png -------------------------------------------------------------------------------- /themes/the-theme/static/images/icons/gittip.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/themes/the-theme/static/images/icons/gittip.png -------------------------------------------------------------------------------- /themes/the-theme/static/images/icons/google-groups.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/themes/the-theme/static/images/icons/google-groups.png -------------------------------------------------------------------------------- /themes/the-theme/static/images/icons/google-plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/themes/the-theme/static/images/icons/google-plus.png -------------------------------------------------------------------------------- /themes/the-theme/static/images/icons/hackernews.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/themes/the-theme/static/images/icons/hackernews.png -------------------------------------------------------------------------------- /themes/the-theme/static/images/icons/lastfm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/themes/the-theme/static/images/icons/lastfm.png -------------------------------------------------------------------------------- /themes/the-theme/static/images/icons/linkedin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/themes/the-theme/static/images/icons/linkedin.png -------------------------------------------------------------------------------- /themes/the-theme/static/images/icons/reddit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/themes/the-theme/static/images/icons/reddit.png -------------------------------------------------------------------------------- /themes/the-theme/static/images/icons/rss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/themes/the-theme/static/images/icons/rss.png -------------------------------------------------------------------------------- /themes/the-theme/static/images/icons/slideshare.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/themes/the-theme/static/images/icons/slideshare.png -------------------------------------------------------------------------------- /themes/the-theme/static/images/icons/speakerdeck.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/themes/the-theme/static/images/icons/speakerdeck.png -------------------------------------------------------------------------------- /themes/the-theme/static/images/icons/stackoverflow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/themes/the-theme/static/images/icons/stackoverflow.png -------------------------------------------------------------------------------- /themes/the-theme/static/images/icons/twitter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/themes/the-theme/static/images/icons/twitter.png -------------------------------------------------------------------------------- /themes/the-theme/static/images/icons/vimeo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/themes/the-theme/static/images/icons/vimeo.png -------------------------------------------------------------------------------- /themes/the-theme/static/images/icons/youtube.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mipt-cs/course-algo/792fc783ac1bff1a3c017557582d7c124829c19b/themes/the-theme/static/images/icons/youtube.png -------------------------------------------------------------------------------- /themes/the-theme/templates/archives.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block content %} 3 |
4 |

Archives for {{ SITENAME }}

5 | 6 |
7 | {% for article in dates %} 8 |
{{ article.locale_date }}
9 |
{{ article.title }}
10 | {% endfor %} 11 |
12 |
13 | {% endblock %} 14 | -------------------------------------------------------------------------------- /themes/the-theme/templates/author.html: -------------------------------------------------------------------------------- 1 | {% extends "index.html" %} 2 | {% block title %}{{ SITENAME }} - {{ author }}{% endblock %} 3 | -------------------------------------------------------------------------------- /themes/the-theme/templates/authors.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block title %}{{ SITENAME }} - Authors{% endblock %} 4 | 5 | {% block content %} 6 | 7 |
8 |

Authors on {{ SITENAME }}

9 |
    10 | {% for author, articles in authors|sort %} 11 |
  • {{ author }} ({{ articles|count }})
  • 12 | {% endfor %} 13 |
14 |
15 | 16 | {% endblock %} 17 | -------------------------------------------------------------------------------- /themes/the-theme/templates/category.html: -------------------------------------------------------------------------------- 1 | {% extends "index.html" %} 2 | {% block title %}{{ SITENAME }} - {{ category }}{% endblock %} 3 | -------------------------------------------------------------------------------- /themes/the-theme/templates/comments.html: -------------------------------------------------------------------------------- 1 | {% if DISQUS_SITENAME %}

There are comments.

{% endif %} 2 | -------------------------------------------------------------------------------- /themes/the-theme/templates/disqus_script.html: -------------------------------------------------------------------------------- 1 | {% if DISQUS_SITENAME %} 2 | 11 | {% endif %} 12 | -------------------------------------------------------------------------------- /themes/the-theme/templates/github.html: -------------------------------------------------------------------------------- 1 | {% if GITHUB_URL %} 2 | 3 | {% if GITHUB_POSITION != "left" %} 4 | Fork me on GitHub 5 | {% else %} 6 | Fork me on GitHub 7 | {% endif %} 8 | 9 | {% endif %} 10 | -------------------------------------------------------------------------------- /themes/the-theme/templates/index.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block content_title %}{% endblock %} 3 | {% block content %} 4 | 5 | 28 | 29 | {% endblock content %} 30 | -------------------------------------------------------------------------------- /themes/the-theme/templates/page.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block title %}{{ page.title }}{% endblock %} 3 | {% block content %} 4 |
5 | {{ page.content }} 6 |
7 | {% endblock %} 8 | -------------------------------------------------------------------------------- /themes/the-theme/templates/period_archives.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | {% block content %} 3 |
4 |

Archives for {{ period | reverse | join(' ') }}

5 | 6 |
7 | {% for article in dates %} 8 |
{{ article.locale_date }}
9 |
{{ article.title }}
10 | {% endfor %} 11 |
12 |
13 | {% endblock %} 14 | -------------------------------------------------------------------------------- /themes/the-theme/templates/tag.html: -------------------------------------------------------------------------------- 1 | {% extends "index.html" %} 2 | {% block title %}{{ SITENAME }} - {{ tag }}{% endblock %} 3 | -------------------------------------------------------------------------------- /themes/the-theme/templates/taglist.html: -------------------------------------------------------------------------------- 1 | {% if article.tags %}

tags: {% for tag in article.tags %}{{ tag | escape }} {% endfor %}

{% endif %} 2 | -------------------------------------------------------------------------------- /themes/the-theme/templates/tags.html: -------------------------------------------------------------------------------- 1 | {% extends "base.html" %} 2 | 3 | {% block title %}{{ SITENAME }} - Tags{% endblock %} 4 | 5 | {% block content %} 6 | 7 |
8 |

Tags for {{ SITENAME }}

9 |
    10 | {% for tag, articles in tags|sort %} 11 |
  • {{ tag }} ({{ articles|count }})
  • 12 | {% endfor %} 13 |
14 |
15 | 16 | {% endblock %} 17 | -------------------------------------------------------------------------------- /themes/the-theme/templates/translations.html: -------------------------------------------------------------------------------- 1 | {% macro translations_for(article) %} 2 | {% if article.translations %} 3 | Translations: 4 | {% for translation in article.translations %} 5 | {{ translation.lang }} 6 | {% endfor %} 7 | {% endif %} 8 | {% endmacro %} 9 | -------------------------------------------------------------------------------- /themes/the-theme/templates/twitter.html: -------------------------------------------------------------------------------- 1 | {% if TWITTER_USERNAME %} 2 | 3 | {% endif %} 4 | --------------------------------------------------------------------------------