Страницы

Поиск по вопросам

Показаны сообщения с ярлыком разметка. Показать все сообщения
Показаны сообщения с ярлыком разметка. Показать все сообщения

понедельник, 13 апреля 2020 г.

Картинка приложения для постинга ссылок

#сервисы #интеграция #разметка #вконтакте

                    
Столкнулся со следующей проблемой. Для того, чтобы ссылки на мой сайт красиво отображались
в социальных сетях, создал специальную картинку - лого. Вот, например, как выгладит
ссылка на facebook:



Картинки слева смотрятся отлично.
Но возникла проблема с контактом. Вот какая ерунда получается:
     

Чтобы картинка появлялась на фэйсбуке, я указал специальный мета-тэг. Существует
ли такой тэг чисто для Контакта (тогда я просто укажу там другую картинку)? Может есть
другие решения? Желательно без скриптов JS, а то на мобильных браузерах это может стать
проблемой.
    


Ответы

Ответ 1



Эврика!!! Чисто как говориться "на шару" (но я это называю методом научного тыка), ввёл такой url: http://vk.com/share.php?image=http://example.com/webpages/images/logovk3.png&url=http://example.com/news/32 т.е. тот, который содержит ключ IMAGE. И всё работает!!! Надеюсь, кому-то в будущем поможет. Я потратил на поиск решения целых 2 часа.

Ответ 2



ВКонтакте полагается на тот же Open Graph протокол, что и FaceBook. Упоминание нашлось в дебрях вконтактовских док: для видео картинку надо указывать через знакомый

вторник, 7 апреля 2020 г.

Использование .ToList() с XDocument

#c_sharp #net #xml #linq #разметка

                    
Есть вот такое выражение:

var ext =
                xDoc.XPathSelectElements("*//nodes")
                    .DescendantNodes().ToList();


И по нему есть несколько вопросов:

1) На выходе я получаю List. Могу я его на ходу преобразовать в List
? Пробовал различные вариации преобразований, но получаю ругань компилятора.

2)Можно ли получить не просто коллекцию List, а ,допустим, List,
где string- это какой-нибудь из атрибутов XElement ?
    


Ответы

Ответ 1



XElement - это наследник XNode, поэтому список узлов в список элементов можно преобразовать операцией .OfType: var ext = xDoc.XPathSelectElements("*//nodes").DescendantNodes().OfType().ToList(); Но в вашем случае проще с самого начала выбрать Descendants() вместо DescendantNodes(): var ext = xDoc.XPathSelectElements("*//nodes").Descendants().ToList(); А еще проще можно сделать вот так: var ext = xDoc.XPathSelectElements("*//nodes//*").ToList(); Или вот так: var ext = xDoc.Root.Descendants("nodes").Descendants().ToList(); По второму вопросу - такой коллекции как List, не существует. Поэтому не вполне понятно что вы пытаетесь получить. Возможно, вам нужен словарь: var ext = xDoc.Root.Descendants("nodes").Descendants().ToDictionary(x => (string)x.Attribute("name")); Или Lookup: var ext = xDoc.Root.Descendants("nodes").Descendants().ToLookup(x => (string)x.Attribute("name"));

воскресенье, 15 марта 2020 г.

android ImageView разметка

#android #xml #изображения #разметка


Доброго времени суток. Подскажите, можно ли используя только лишь Layout-ы, не используя
Surface, Canvas и прочее, сделать подобное ( см. аттач )? Имеется ввиду именно расположение
контроллов с поддержкой landscape. Спасибо!

    


Ответы

Ответ 1



Да, можно. Нужна комбинация 5-6 (может и больше) вложенных друг в друга лейаутов. На верхнем уровне LinearLayout с горизонтальной ориентацией, далее в него 2 вложенных LinearLayout один с аватаркой, а второй (справа) содержащий все остальное. В правом надо будет организовать RelativeLayout, где слева большой ImageView а справа снизу Button. Мелкие ImageView сгруппировать в TableView с двумя строчками, в каждой строчке еще по одному RelativeLayout Это как бы версия, возможно она не сработает, а может и сработает. Но смысл простой - комбинацией различных типов лейаутов всегда можно нарисовать практически все что угодно. Еще ни разу не было, чтобы я не смог нарисовать какой угодно сложный набор. Дерзайте. Update Большой круг с фотиком можно например сделать так: Где drawable/ball: В итоге получится примерно так:

Ответ 2



А можно и без 5-6 наложений, надо всего лишь использовать RelativeLayout. Делал на скорую руку, так что сильно не пинайте. Update Для этих кругов используйте стиль из ответа @Barmaley и подключайте его через android:background

суббота, 11 января 2020 г.

Таблица с разной шириной колонок (GridView)

#android #gridview #разметка


возникла такая проблема: есть таблица(GridView) в которую из БД предаются данные
и у неё все ячейки одинакового размера. Как сделать что бы первый столбец занимал половину
экрана, а остальные два всё оставшееся место? Если для GridView это сделать не возможно,
то какие другие таблицы можно использовать(но что бы ячейки были нажимаемыми)?
   
    


Ответы

Ответ 1



Kotlin: var COLS:Int = 3; var tblLayout = findViewById(R.id.tableLayout)as TableLayout tblLayout.removeAllViews() var SCV=scrollView while(i

четверг, 26 декабря 2019 г.

OnTouchListener у Layout

#android #android_sdk #разметка #ontouchlistener




Имеется два Layout:

A - RelativeLayout.
B - LinearLayout.

Вот пример разметки:




    

        

        
        



На  Layout A я установил слушатель OnTouchListener. Мне нужно, чтобы при нажатии
на область Layout B или на его потомков, слушатель не срабатывал, а при касании за
границей Layout A срабатывал. 

При нажатии на Spinner слушатель Layout A не срабатывает, т.к. на нем (спиннере)
есть свой родной слушатель, однако у View его нет. Установить на него слушатель не
вариант. Что делать?
    


Ответы

Ответ 1



Добавьте OnTouchListener для Layout B и в нём устанавливайте значение булевой переменной, а в OnTouchListener для Layout A проверяйте значение этой переменной. Например, так: boolean ChildTouched = false; RelativeLayout ParentLayout = (RelativeLayout)findViewById(R.id.menuParentLayout); ParentLayout.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (ChildTouched) { ChildTouched = false; return true; } System.out.println("Touch parent activity"); return true; } }); LinearLayout ChildLayout = (LinearLayout)findViewById(R.id.menuLayout); ChildLayout.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { System.out.println("Touch child activity"); ChildTouched = true; return true; } });

вторник, 17 декабря 2019 г.

Как мутировать текст?

#текст #разметка #семантика


Задача генерировать некое количество похожих по содержанию, но не совпадающих 1:1
коротких текстов – например, постов в соц. сети.

Предполагаю, что будет делаться шаблон с местами, куда подставляются либо формы слова
в зависимости от пола «автора», либо один из синонимов, случайно.

Псевдокод:

{gender:Решил|решила} {random:попробовать|испытать|потестить} 
{random:новый сервис|новую примочку} для моих задач.


Если усложнять, понадобятся кросс-связи для родов-падежей выбранных вариантов в разных
частях предложения. Глобальные и локальные переменные. Целый ЯП?

Вопрос: существует ли стандартный подход к такой задаче (как называется такая задача),
есть ли язык разметки, подходящий для описания таких шаблонов?



Upd. Если мечтать, идеально и «правильно» было бы просто подать единственный вариант
текста на вход. И иметь движок, способный адекватно оценить смысл, разложить на элементы
и самостоятельно предложить замены исходя из заданных допусков. Напр. пол фиксировать
параметром, упомянутые цвета не менять, упомянутые имена художников менять в рамках
одного художественного стиля и исторической эпохи (ладно, это уже высший пилотаж был бы : )
    


Ответы

Ответ 1



Никогда этим не занимался, но знаю что обычно для этого используют цепи Маркова. Информация для размышления. Второй источник пищи к размышлению. Описывается система перевода, общий принцип работы которой сводится к последовательности преобразований: язык 1->анализ->семантическое описание->генерация->язык 2. Как вы понимаете у вас на входе и на выходе должен быть один и тот же язык, плюс потребуется в семантическом описании подставлять синонимы в разных комбинациях. Можно сделать более простой вариант который содержал бы только второй этап - генерацию. Вообще к чему я это все, а к тому что стоит поискать переводчики с открытым кодом реализующими приведенный принцип. Кстати сам Сокирко со товарищи выложил свои наработки под GPL. Это не система перевода а система анализа, но главное там есть инструменты для работы с семантическими описаниями.

Ответ 2



Ну предположим, так (работает в Firefox актуальной версии): var processors = { gender(options, m, w) { return options.gender === 'm' ? m : w; }, random(options, ...a) { return a[Math.random() * a.length | 0]; } }; function generate(template, options) { return template.replace(/\{(\w+):(.*?)\}/g, function (match, key, str) { return processors[key] ? processors[key].apply(null, [options].concat(str.match(/(\\[{}|\\]|[^|])+/g))) : match; }); } var template = "{gender:Решил|Решила} {random:попробовать|испытать|потестить} \n\ {random:новый сервис|новую примочку} для моих задач." for (var q=0; q<10; ++q) console.log(generate(template, { gender: 'mw'[q&1] })); Вроде сюда можно добавить любую желаемую логику.

суббота, 14 декабря 2019 г.

Как добавить комментарий в документ с разметкой Markdown?

#разметка #комментарии #markdown


Нужно добавить в документ на Markdown комментарии, которые бы не экспортировались
в итоговый документ. 

Есть стандартный html-комментарий:

 


Проблема в том, что при экспорте такой комментарий попадает в итоговый документ в
неизменном виде. Можно ли сделать такие комментарии, которые будут вырезаться при экспорте
в HTML?
    


Ответы

Ответ 1



Это реализуемо с помощью ярлыка ссылки (link label), с которым не связывается ни одна ссылка. Эти ярлыки ссылок будут вырезаны при экспорте: (пустая строка) [comment]: # (comment text) (пустая строка) [//]: # (comment text) Сравните с обычным синтаксисом ссылки: [link text][label] [label]: http://ru.stackoverflow.com/questions/ask В принципе, спецификация Markdown допускает вариант, когда перед комментарием нет пустой строки, а вместо # используется <>. Проблема в том, что спецификация дырява как решето, а имеющиеся 28+ реализаций работают по–разному. Добро пожаловать в Markdown! Проверить работу различных реализаций нам поможет инструментарий Babelmark2, проверяющий рендеринг разметки Markdown в различных реализациях. (+ — прошли тест, - — не прошли, ? — оставляют неотображаемый мусор в HTML). Без пустых строк, с <> 13+, 15- Пустая строка перед, с <> 20+, 8- Пустая строка перед и после, c <> 20+, 8- Без пустых строк, с # 13+ 1? 14- Пустая строка перед, с # 23+ 1? 4- Пустая строка перед и после, c # 23+ 1? 4- Согласно проверке, наиболее платформо-независимый вариант — это # и пустая строка перед комментарием. Пустая строка после комментария не играет роли. В частности, набирающая популярность строгая спецификация CommonMark, в разработке которой участвует Jeff Atwood, работает именно с этим вариантом (и не работает с <> и/или без пустой строки) C этими реализациями нет никакой возможности использовать такие комментарии: cebe/markdown 1.1.0 cebe/markdown MarkdownExtra 1.1.0 cebe/markdown GFM 1.1.0 s9e\TextFormatter (Fatdown/PHP) Исследование основано на решении, предложенном участником Magnus на SO.EN.

суббота, 13 июля 2019 г.

Разметка html5 страницы каталога товаров

Доброго времени суток. С выходом HTML5 появилось множество различных дополнительных тегов и многое другое. А я хочу использовать их правильно и как следует. Изучил несколько статей в интернете (для примера). Но хочу на всякий случай уточнить некоторые нюансы.
Планируется страница, которая выводит список товаров определённой категории. На странице будет: главное меню для навигации по сайту, сайтбар с фильтрами, карточки товаров. Разметку в общем виде я себе представляю следующим образом:

Название категории товара

Название товара

Название товара

Название товара

Название товара

Название товара


Насчёт тега
у меня сомнения. Быть может стоит выбрать
( устарел)? Что касается карточке товаров, то они все в отдельных дивах и т.п. - их я опустил для наглядности.
Если поместить код в HTML 5 Outliner, то окажется, что

четверг, 29 ноября 2018 г.

OnTouchListener у Layout


Имеется два Layout:
A - RelativeLayout. B - LinearLayout.
Вот пример разметки:




На Layout A я установил слушатель OnTouchListener. Мне нужно, чтобы при нажатии на область Layout B или на его потомков, слушатель не срабатывал, а при касании за границей Layout A срабатывал.
При нажатии на Spinner слушатель Layout A не срабатывает, т.к. на нем (спиннере) есть свой родной слушатель, однако у View его нет. Установить на него слушатель не вариант. Что делать?


Ответ

Добавьте OnTouchListener для Layout B и в нём устанавливайте значение булевой переменной, а в OnTouchListener для Layout A проверяйте значение этой переменной. Например, так:
boolean ChildTouched = false; RelativeLayout ParentLayout = (RelativeLayout)findViewById(R.id.menuParentLayout); ParentLayout.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (ChildTouched) { ChildTouched = false; return true; } System.out.println("Touch parent activity"); return true; } });
LinearLayout ChildLayout = (LinearLayout)findViewById(R.id.menuLayout); ChildLayout.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { System.out.println("Touch child activity"); ChildTouched = true; return true; } });

понедельник, 22 октября 2018 г.

Как добавить комментарий в документ с разметкой Markdown?

Нужно добавить в документ на Markdown комментарии, которые бы не экспортировались в итоговый документ.
Есть стандартный html-комментарий:

Проблема в том, что при экспорте такой комментарий попадает в итоговый документ в неизменном виде. Можно ли сделать такие комментарии, которые будут вырезаться при экспорте в HTML?


Ответ

Это реализуемо с помощью ярлыка ссылки (link label), с которым не связывается ни одна ссылка. Эти ярлыки ссылок будут вырезаны при экспорте:

(пустая строка) [comment]: # (comment text)
(пустая строка) [//]: # (comment text)
Сравните с обычным синтаксисом ссылки:
[link text][label]
[label]: http://ru.stackoverflow.com/questions/ask
В принципе, спецификация Markdown допускает вариант, когда перед комментарием нет пустой строки, а вместо # используется <>. Проблема в том, что спецификация дырява как решето, а имеющиеся 28+ реализаций работают по–разному. Добро пожаловать в Markdown!
Проверить работу различных реализаций нам поможет инструментарий Babelmark2, проверяющий рендеринг разметки Markdown в различных реализациях. (+ — прошли тест, - — не прошли, ? — оставляют неотображаемый мусор в HTML).
Без пустых строк, с <> 13+, 15- Пустая строка перед, с <> 20+, 8- Пустая строка перед и после, c <> 20+, 8- Без пустых строк, с # 13+ 1? 14- Пустая строка перед, с # 23+ 1? 4- Пустая строка перед и после, c # 23+ 1? 4-
Согласно проверке, наиболее платформо-независимый вариант — это # и пустая строка перед комментарием. Пустая строка после комментария не играет роли. В частности, набирающая популярность строгая спецификация CommonMark, в разработке которой участвует Jeff Atwood, работает именно с этим вариантом (и не работает с <> и/или без пустой строки)
C этими реализациями нет никакой возможности использовать такие комментарии:
cebe/markdown 1.1.0 cebe/markdown MarkdownExtra 1.1.0 cebe/markdown GFM 1.1.0 s9e\TextFormatter (Fatdown/PHP)
Исследование основано на решении, предложенном участником Magnus на SO.EN.